)]}'
{
  "log": [
    {
      "commit": "5e09df086c2eaca0f88c0c208992bc56d070581d",
      "tree": "d53ee614947937ab23bf52bf1baf88fc63adf81f",
      "parents": [
        "ad8f03da503beeea6b4a615d473ecf680b88d95a",
        "fa9aadfdd8c5f67a47f5a4abafbae0671283affa"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Fri Jun 21 08:04:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jun 21 08:04:35 2019 +0000"
      },
      "message": "Merge \"Install from bindep.txt in plugins\""
    },
    {
      "commit": "4b8cba77fe3444c925b5e4fe39743d54b0243eef",
      "tree": "e4ccc899ff3f9d0fb5f676c09ce12482c7fd183e",
      "parents": [
        "984c3ae33b6a55f04a2d64ea9ffbe47e37e89953"
      ],
      "author": {
        "name": "Stephen Finucane",
        "email": "sfinucan@redhat.com",
        "time": "Tue May 21 14:17:11 2019 +0100"
      },
      "committer": {
        "name": "Stephen Finucane",
        "email": "sfinucan@redhat.com",
        "time": "Fri May 31 15:10:05 2019 +0100"
      },
      "message": "Remove n-cells, n-net and n-cauth\n\nRemove nova cells v1 support, which also allows/necessitates removing\nsupport for nova networks (which was only supported with cells v1) and\nnova-consoleauth (which was required by cells v1 but is unnecessary\notherwise).\n\nThe Depends-On isn\u0027t really necessary, but it\u0027s here to make sure this\ndoesn\u0027t merge until we _really_ have killed cells v1.\n\nI honestly expected this patch would be bigger.\n\nChange-Id: I90316208d1af42c1659d3bee386f95e38aaf2c56\nSigned-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e\nDepends-On: Ib0e0b708c46e4330e51f8f8fdfbb02d45aaf0f44\n"
    },
    {
      "commit": "f9f11148cf1b43e1f3e9684cc11b0160d3ff4479",
      "tree": "4f03bc587e357ae45b0477a5cc56f8033d07582d",
      "parents": [
        "53787554d82511874f72246f39e6713f436585bf",
        "b6f04ca5c9c09db2d567ecbf7fad757158fd0aba"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Mon Feb 18 00:44:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Feb 18 00:44:44 2019 +0000"
      },
      "message": "Merge \"Fix distro detection for SUSE Linux Enterprise\""
    },
    {
      "commit": "f3302dcee3e11fb4283a28416e1bcf92514b6bf8",
      "tree": "e2ee094c33c2db78d39ad2c134f22dd8cbd353a4",
      "parents": [
        "f1275599ad372e7715b5b825d6ab8649867b3679",
        "58243f6203f3385039fe7124b037d5abf7e1d59e"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Wed Feb 06 16:34:56 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Feb 06 16:34:57 2019 +0000"
      },
      "message": "Merge \"Add options for development bindep install\""
    },
    {
      "commit": "b6f04ca5c9c09db2d567ecbf7fad757158fd0aba",
      "tree": "21fe32c99184eb73f9456430a4ed548cc157308f",
      "parents": [
        "7a52311d803ab76703956969760d63c5d82cffae"
      ],
      "author": {
        "name": "Adam Spiers",
        "email": "aspiers@suse.com",
        "time": "Wed Jan 23 18:55:16 2019 +0000"
      },
      "committer": {
        "name": "Adam Spiers",
        "email": "aspiers@suse.com",
        "time": "Wed Jan 30 16:48:09 2019 +0000"
      },
      "message": "Fix distro detection for SUSE Linux Enterprise\n\nOn SUSE Linux Enterprise distributions, lsb_release -i typically\nreturns \"SUSE\" not \"SUSE LINUX\" as the vendor string.\n\nTo avoid duplication of the same regular expressions in multiple\nplaces, add is_opensuse() and is_sle() helper functions, and modify\nis_suse to invoke those.\n\nThis may also be helpful in the future for distinguishing some corner\ncases where things are handled differently between openSUSE and SLE.\n\nChange-Id: I43bf163bc963758ddbb6289928837f5f6512f265\n"
    },
    {
      "commit": "fa9aadfdd8c5f67a47f5a4abafbae0671283affa",
      "tree": "33b33cb6593caa257324659009aecdedc96dea52",
      "parents": [
        "58243f6203f3385039fe7124b037d5abf7e1d59e"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Jan 15 18:31:05 2019 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jan 16 11:14:09 2019 +1100"
      },
      "message": "Install from bindep.txt in plugins\n\nThis allows plugins to specify their binary dependencies in bindep\nformat.\n\nSome thinking on the implementation: this is in contrast to the\nfiles/[deb|rpm] installation, which is called from the external\ninstall_prereqs.sh script.  This script being an externally callable\nentry-point is really an artifact of the days when we would build\nsnapshot images for CI and wanted to pre-cache downloads.  These days\nwe use the mirror system to keep packages close to CI nodes.  Thus\nrather than expand install_prereqs.sh to also be installing\nvirtualenvs and python dependencies, this seems to fit better as a\nseparate internal phase of stack.sh.\n\nDocumentation is updated\n\nChange-Id: Icbdfbf97c17c906a7ae86f43e80eb2c445816228\n"
    },
    {
      "commit": "58243f6203f3385039fe7124b037d5abf7e1d59e",
      "tree": "657a7933404290db8f3df9e47de90c1439e51fc3",
      "parents": [
        "8fc227f63fd0820bd9c5725a6023529c742d2041"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Dec 13 14:05:53 2018 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Jan 14 16:35:12 2019 +1100"
      },
      "message": "Add options for development bindep install\n\nThis adds a -bindep option to the key development library install\nfunctions.  With this option the bindep.txt file will be referenced\nand the relevant packages installed.\n\nChange-Id: I856f1f59fca49b6020920d8f859b797f3b904300\n"
    },
    {
      "commit": "5690582073756bdc156550b90a8e284a8d4e0e5f",
      "tree": "feb9281201c0cfcca1109501620c97ea00385660",
      "parents": [
        "a88a22969cb557456d3a8db8ae734a59a1ba8066"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Jan 08 15:29:16 2019 +0000"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Tue Jan 08 23:25:57 2019 +0000"
      },
      "message": "Add devstack-system-admin for system scoped actions\n\nKeystone is moving more things to require a system scoped token to\nwork. Getting one of those requires that domain and project information\nare not set.\n\nChange-Id: I2e1640e9f9ef6cdf56bef49d1ae8f0591570c3e6\n"
    },
    {
      "commit": "e0b375c8ce77ca256d108b2c558d57e17efab4f7",
      "tree": "780cbdbb7e487e1310b67eabd8e47d11a683ea34",
      "parents": [
        "2697e431d290fb52bea92cb1c211ead3b825a088"
      ],
      "author": {
        "name": "Akihiro Motoki",
        "email": "amotoki@gmail.com",
        "time": "Fri Dec 14 17:29:27 2018 +0900"
      },
      "committer": {
        "name": "Akihiro Motoki",
        "email": "amotoki@gmail.com",
        "time": "Fri Dec 14 17:29:27 2018 +0900"
      },
      "message": "Use volume v3 API in clouds.yaml by default\n\nVolume API v2 has been deprecated for a long time.\nThere is no reason to use volume v2 in clouds.yaml by default.\n\nThis commit also drops \"--os-identity-api-version 3\" from\nwrite_clouds_yaml in functions -common as \"3\" is the default value\nof tools/update_clouds_yaml.py. They are hardcoded in DevStack\nso there is no reason to pass it.\n\nChange-Id: Ie84026a3d19f7711fc781b7012355096c7ff6b5a\n"
    },
    {
      "commit": "a1ffc4f1ebef16077844bb4b547c502bdd5c9272",
      "tree": "f94de2f6f30070e0905bdbea4d81d2df62b7a417",
      "parents": [
        "dd0f884b7e08eff920d27b10b53b1301b9ffd9c3",
        "e8a6a0261c8118e8f89b51f1e31015a236a0fba3"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Wed Oct 10 13:01:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 10 13:01:04 2018 +0000"
      },
      "message": "Merge \"Quote error messages\""
    },
    {
      "commit": "dd0f884b7e08eff920d27b10b53b1301b9ffd9c3",
      "tree": "8c1f9ccfa215e0e183792be5228ab07e09711c0c",
      "parents": [
        "afde40943187ed9964cc0b8670086d76a0a544f1",
        "297a50ac86e597cb31c7f4347925ad0e5984960f"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Tue Oct 09 08:51:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Oct 09 08:51:41 2018 +0000"
      },
      "message": "Merge \"Convert to openSUSE Leap 15.0 platform testing\""
    },
    {
      "commit": "297a50ac86e597cb31c7f4347925ad0e5984960f",
      "tree": "0b99dfefc2522ed4013aff9be747ba76b59b32c4",
      "parents": [
        "eb7d1ad198276821c3037cb6a23f995537572dcd"
      ],
      "author": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Wed Jun 20 11:08:54 2018 +0200"
      },
      "committer": {
        "name": "Antonio Ojea",
        "email": "itsuugo@gmail.com",
        "time": "Mon Oct 08 07:09:21 2018 +0000"
      },
      "message": "Convert to openSUSE Leap 15.0 platform testing\n\nLeap 15.0 has been released May 25th, 2018 (see\nhttps://en.opensuse.org/Portal:15.0 ) and we\u0027d like to\ntransition devstack against it and remove Leap 42.3 from\nthe testing matrix. Leap 15.0 is newer than Leap 42.3 as\nthe numbering schema of openSUSE was changed.\n\nCo-Authored-By: Antonio Ojea \u003citsuugo@gmail.com\u003e\n\nChange-Id: I078f9a2580160c564c33e575008516f5e92239d6\n"
    },
    {
      "commit": "e8a6a0261c8118e8f89b51f1e31015a236a0fba3",
      "tree": "81c389e8122cf4098e8c55e811b44240e8852b79",
      "parents": [
        "4e16c3dd5f4c5740ab92facf2083282440df9ac0"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Oct 08 15:20:34 2018 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Oct 08 15:20:34 2018 +1100"
      },
      "message": "Quote error messages\n\nAs a follow-on to I28aebffce6c5561360a9e44c1abc44b709054c30; make sure\nwe quote the error messages on the way through so they retain their\nnewlines.\n\nChange-Id: I493317948264941b4788b100a0b0bc13d2698acf\n"
    },
    {
      "commit": "4e16c3dd5f4c5740ab92facf2083282440df9ac0",
      "tree": "ac85ea2c5d60f52b0d5d9aabb796642e6d21b916",
      "parents": [
        "02ca8da102798608599f8e4adb7b1dc890a6f124"
      ],
      "author": {
        "name": "Paweł Suder",
        "email": "pawel@suder.info",
        "time": "Wed Sep 26 15:52:13 2018 +0200"
      },
      "committer": {
        "name": "Paweł Suder",
        "email": "pawel@suder.info",
        "time": "Wed Sep 26 16:00:56 2018 +0200"
      },
      "message": "Fix common systemd pitfalls die msg\n\nThat change introduces correct way of generating msg\nfor die in common systemd pitfalls.\n\nCo-Authored-By: Szymon Datko \u003cszymon.datko@corp.ovh.com\u003e\nCo-Authored-By: Piotr Bielak \u003cpiotr.bielak@corp.ovh.com\u003e\nChange-Id: I28aebffce6c5561360a9e44c1abc44b709054c30\n"
    },
    {
      "commit": "5da7e4a22ede5f3049e7607a54a0f5ca2b413a29",
      "tree": "79fc2ab71026afcb588696cf1930370f832167c8",
      "parents": [
        "0530ceec9e190828bb6e9962db65a3ce89e89be8",
        "dc7b4294632172d0b743f98448942fe260a8a3ff"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Tue Jul 10 06:10:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jul 10 06:10:28 2018 +0000"
      },
      "message": "Merge \"Fix running with SERVICE_IP_VERSION\u003d6\""
    },
    {
      "commit": "0417858afa5cb65726579640231019de2215e530",
      "tree": "13fadd609281725f1aedd5efd95cc5f53d03b8bc",
      "parents": [
        "aed9300b715f2d3f0d77ee22d34225a5c1b5c89e"
      ],
      "author": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Tue Jun 12 15:37:00 2018 -0400"
      },
      "committer": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Tue Jun 12 15:37:00 2018 -0400"
      },
      "message": "fix typo in python3_version\n\nThe function was using an undefined variable to show the version of\npython3 being used.\n\nChange-Id: Ibc956975d620ed5174de8823f9c202a680c56aaf\nSigned-off-by: Doug Hellmann \u003cdoug@doughellmann.com\u003e\n"
    },
    {
      "commit": "a14b78082f3993c62969c06b0a58bbd4d3ac9bc1",
      "tree": "671c61478b8d8a65197015001630c23f67a1dd33",
      "parents": [
        "61e0b16c663dd4605301d36313865513a840c674",
        "ffd0047afa78bfd4d6576afe1d4b8c79435b158c"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Mon Mar 19 18:39:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Mar 19 18:39:14 2018 +0000"
      },
      "message": "Merge \"functions-common: Don\u0027t reguess Python versions\""
    },
    {
      "commit": "4404f680f2447912dcdbcecde14339bc6d1f5175",
      "tree": "bec2809014e5ea791974741829e066b45533820d",
      "parents": [
        "f80c750d75f22026a3f92172b1efaade8ff15f1c"
      ],
      "author": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Fri Mar 02 00:37:58 2018 +0100"
      },
      "committer": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Sun Mar 11 14:04:36 2018 +0100"
      },
      "message": "Add an openSUSE Tumbleweed devstack non-voting check job\n\nThis adds the necessary fixes to pass a devstack run\non openSUSE Tumbleweed. Also removes opensuse 42.2 as it\nis EOL for some time already and no longer actively tested\nin the OpenStack infra.\n\nDepends-On: I1b68c08c07cf6653ea58506f738cbe0054b38f3a\nChange-Id: I2894482deef063fd02b0818c695a2ddbf6767039\n"
    },
    {
      "commit": "dc7b4294632172d0b743f98448942fe260a8a3ff",
      "tree": "b3c4c6da9ba5624306e74e92e7868cf756f94a86",
      "parents": [
        "a6a36d11d8ec39f6d782596469884559bc768d21"
      ],
      "author": {
        "name": "Jens Harbott",
        "email": "j.harbott@x-ion.de",
        "time": "Tue Sep 19 10:52:32 2017 +0000"
      },
      "committer": {
        "name": "Jens Harbott",
        "email": "j.harbott@x-ion.de",
        "time": "Sun Mar 11 08:53:41 2018 +0000"
      },
      "message": "Fix running with SERVICE_IP_VERSION\u003d6\n\n- There are some locations where we need the raw IPv6 address instead of the\n  url-quoted version enclosed in brackets.\n- Make nova-api-metadata service listen on IPv6 when we need that.\n- Use SERVICE_HOST instead of HOST_IP for TLS_IP.\n\nChange-Id: Id074be38ee95754e88b7219de7d9beb06f796fad\nPartial-Bug: 1656329\n"
    },
    {
      "commit": "ffd0047afa78bfd4d6576afe1d4b8c79435b158c",
      "tree": "0c72ce82afac86e57ff02e9359b2130dfa53d1d3",
      "parents": [
        "b5841fa5d65b2c9899bbf45e6ad65138dc08cfa2"
      ],
      "author": {
        "name": "Stephen Finucane",
        "email": "sfinucan@redhat.com",
        "time": "Thu Jan 18 15:12:29 2018 +0000"
      },
      "committer": {
        "name": "Stephen Finucane",
        "email": "sfinucan@redhat.com",
        "time": "Thu Jan 18 15:12:29 2018 +0000"
      },
      "message": "functions-common: Don\u0027t reguess Python versions\n\nWe have already established the correct version of Python to use during\ninstallation, either automatically or through user-provided information\n(USE_PYTHON3, PYTHON3_VERSION). Don\u0027t do it again.\n\nChange-Id: I7bdf2be9a885994bf2c437dd104048a1ff2f6666\nCloses-Bug: #1744096\n"
    },
    {
      "commit": "d37119e797d3140aeb0038a1129ce5e9016c1a36",
      "tree": "2b795d00e5b580e480a14ac62c7776aeb4538400",
      "parents": [
        "950a3770c390b7956c8b6681718d626e839eef92",
        "c5853ac1afe79c9b96a2c4cbd30069566ab12955"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Thu Dec 07 11:00:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Dec 07 11:00:29 2017 +0000"
      },
      "message": "Merge \"Allow plugins to express dependency info\""
    },
    {
      "commit": "c5853ac1afe79c9b96a2c4cbd30069566ab12955",
      "tree": "48e692219ee24b2a6bf6466cf00f83cb5bb9d73b",
      "parents": [
        "e03b6bd8f8d14db3533b68a0cb97e4baad901dc1"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@redhat.com",
        "time": "Tue Nov 21 09:44:42 2017 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@redhat.com",
        "time": "Tue Nov 21 16:33:23 2017 -0800"
      },
      "message": "Allow plugins to express dependency info\n\nAdd a no-op function, \"plugin_requires\" to allow plugins to indicate\ntheir dependencies on each other.  This will be used by the Devstack\nAnsible module when writing local.conf files.\n\nAlso add define_plugin to allow plugins to indicate their canonical\nnames.\n\nChange-Id: Ibd8c7222ed7dfb08d7ea821d871fc6f3b88de24b\n"
    },
    {
      "commit": "4caa9c35805b0b458f1245c3f293802625755db4",
      "tree": "961f4fbf9d0533205c879ff39e517a43c8b2886a",
      "parents": [
        "e03b6bd8f8d14db3533b68a0cb97e4baad901dc1",
        "3b815a3cb2537885b501ad559bfd69ad5efb9085"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Tue Nov 21 20:04:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Nov 21 20:04:29 2017 +0000"
      },
      "message": "Merge \"Provide finite value for systemd\u0027s TimeoutStopSec\""
    },
    {
      "commit": "2647fc2ac1079836c558fc1062bffcaec002cd15",
      "tree": "dc3bc4728bb69724b77b82bd99054460590b6d31",
      "parents": [
        "8c5e960fd1a36c06720680b32931d53bcf98c602",
        "b8335eebe88f5ebe0c1d42344ced60e55ead3c5e"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Wed Nov 15 00:05:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Nov 15 00:05:24 2017 +0000"
      },
      "message": "Merge \"Drop support for \"kvmibm\" distro\""
    },
    {
      "commit": "3b815a3cb2537885b501ad559bfd69ad5efb9085",
      "tree": "6838239b43c756af84a869636fdb6b0ba6b23040",
      "parents": [
        "2e3c96a3ad1672eeddbc4a9a7d3eeda6a68e88be"
      ],
      "author": {
        "name": "Michał Dulko",
        "email": "mdulko@redhat.com",
        "time": "Tue Nov 14 16:04:51 2017 +0100"
      },
      "committer": {
        "name": "Michał Dulko",
        "email": "mdulko@redhat.com",
        "time": "Tue Nov 14 16:12:56 2017 +0100"
      },
      "message": "Provide finite value for systemd\u0027s TimeoutStopSec\n\nThis commit switches TimeoutStopSec in DevStack\u0027s systemd unit files\nfrom \"infinity\" to \"300\". There are two motivations for that change:\n\n* 5 minutes should be more than enough to stop a service.\n* systemd included in CentOS 7 and RHEL 7 doesn\u0027t support \"infinity\" as\n  a value, \"0\" should be provided instead. When \"infinity\" is set,\n  systemd will kill the service instantly, leaving service children\n  processes orphaned. Instead of differentiating here, we can just set a\n  sane, finite number.\n\nCloses-Bug: 1731275\nChange-Id: I0a079ea9879fa4fbba23104c2f5ab6e0721a2a2a\n"
    },
    {
      "commit": "e4eef81c2bd257e890be636a7a9fd4cb61ea3d5b",
      "tree": "281ad49321210b476ac98b779289b95ce024fb35",
      "parents": [
        "2b97a81640df1f8d537d6cf7b291f15d8f084a18",
        "ef60f2b7180f269a53f405efa7449618eddf86a1"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Oct 10 22:04:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Oct 10 22:04:56 2017 +0000"
      },
      "message": "Merge \"Enable reloadable config in services\""
    },
    {
      "commit": "2b97a81640df1f8d537d6cf7b291f15d8f084a18",
      "tree": "f6c6b698e7dd502a5b675c4158196b2445d6a4a6",
      "parents": [
        "a29329b55983d69c3966e1699f985be8cdf6e59d"
      ],
      "author": {
        "name": "Radoslav Gerganov",
        "email": "rgerganov@vmware.com",
        "time": "Tue Oct 10 16:51:12 2017 +0300"
      },
      "committer": {
        "name": "Radoslav Gerganov",
        "email": "rgerganov@vmware.com",
        "time": "Tue Oct 10 16:53:18 2017 +0300"
      },
      "message": "Remove references to $USE_SCREEN in comments\n\nThe USE_SCREEN variable is not used any more\n\nChange-Id: I29ad9cdb6c8498404502d91fbc4e1299bf4a633e\n"
    },
    {
      "commit": "b8335eebe88f5ebe0c1d42344ced60e55ead3c5e",
      "tree": "ccec327c9490de0e51b9764c97de7adea1c6173f",
      "parents": [
        "a29329b55983d69c3966e1699f985be8cdf6e59d"
      ],
      "author": {
        "name": "Markus Zoeller",
        "email": "mzoeller@de.ibm.com",
        "time": "Tue Sep 26 08:32:50 2017 +0200"
      },
      "committer": {
        "name": "Markus Zoeller",
        "email": "mzoeller@de.ibm.com",
        "time": "Tue Oct 10 11:08:09 2017 +0200"
      },
      "message": "Drop support for \"kvmibm\" distro\n\nThe IBM hypervisor distro \"KVM for IBM z Systems\" gets discontiued,\nlike announced in March 2017 [1]. The key dates are:\n\n* 03/2017: announcement\n* 08/2017: the last day to order (EOM)\n* 03/2018: the End of Service (EOL)\n\nAs the CI which tests OpenStack with KVM on IBM Z doesn\u0027t rely on this\ndistro anymore and EOM has reached, we remove the Devstack support for\nthis distro.\n\nThis basically reverts commit a5ea08b of Dec 2015.\n\nNOTE: This doesn\u0027t affect other distros which have KVM on Z support.\n\nReferences:\n[1] FAQ for KVM for IBM z Systems Delivery Strategy Change\n    https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?htmlfid\u003dZSQ03110USEN\u0026\n\nChange-Id: I009ae4779588615633bff81d0c47a1b879ec9279\n"
    },
    {
      "commit": "7c9542eb023abd7b044d7e861edace4d42fc7c02",
      "tree": "d8428399bdd7f3bea68047d2921d10f24a237f2d",
      "parents": [
        "d8548008e6f8699175c84fd52f9de3ec7732f4ec",
        "5ef8a125cc3a8b8f461a9636001c0ad7f6f88957"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Sep 28 12:16:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Sep 28 12:16:50 2017 +0000"
      },
      "message": "Merge \"Install minimal lsb-release package on openSUSE\""
    },
    {
      "commit": "4a50053c74ed3a9cfe265762e3dd3d853557736f",
      "tree": "f1be0271763a15106f678e2afe92b3774953c39c",
      "parents": [
        "2ede133ed766e2b51de04e421183e5e5254537fb",
        "7617ac208596665061453dfa04b75e4cc8a76ac9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Sep 25 13:37:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Sep 25 13:37:32 2017 +0000"
      },
      "message": "Merge \"Make is_ipv4_address a bit more robust\""
    },
    {
      "commit": "5ef8a125cc3a8b8f461a9636001c0ad7f6f88957",
      "tree": "41d1ea96ee56fed253882a92b4fb4246d727e1d3",
      "parents": [
        "0a97e5618641ab7f66c570aa30b8b805848b5a95"
      ],
      "author": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Mon Sep 25 13:08:51 2017 +0200"
      },
      "committer": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Mon Sep 25 13:09:43 2017 +0200"
      },
      "message": "Install minimal lsb-release package on openSUSE\n\nlsb-release is a dependency of \"lsb\", so it used to work\nbefore just fine as well, but it was installing about 300MB\nof \"stuff\" that we don\u0027t actually need..\n\nChange-Id: I25c7c750cbaeb40bf4f2e8695608c4b1003289ea\n"
    },
    {
      "commit": "5aff50b09d0720042eefc27ce606b16ef5e41eb1",
      "tree": "96633dcf2e728a5882290843dff5a19e73ec50a2",
      "parents": [
        "548198769f2ddd31fc2b89a0390bbb850fdae6f0",
        "5ad4e58868bf48a72841bee313fd2aae61b6ddf7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Sep 21 19:42:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Sep 21 19:42:27 2017 +0000"
      },
      "message": "Merge \"Display unaccounted time in \"DevStack Component Timing\"\""
    },
    {
      "commit": "7617ac208596665061453dfa04b75e4cc8a76ac9",
      "tree": "104f617282b75eb7146716286f126a5b3edc71e8",
      "parents": [
        "b2330c89196c65662fcf98a2295b7e41b1652b28"
      ],
      "author": {
        "name": "Jens Harbott",
        "email": "j.harbott@x-ion.de",
        "time": "Tue Sep 19 17:43:48 2017 +0000"
      },
      "committer": {
        "name": "Jens Harbott",
        "email": "j.harbott@x-ion.de",
        "time": "Wed Sep 20 08:56:10 2017 +0000"
      },
      "message": "Make is_ipv4_address a bit more robust\n\nStill not ideal, but at least should avoid matching IPv6 addresses.\n\nChange-Id: Ibb64263fdb0308f56c18518289501dd4642dcbad\n"
    },
    {
      "commit": "5ad4e58868bf48a72841bee313fd2aae61b6ddf7",
      "tree": "267dd78f7f147b5d2aad3087e41785e75959fe74",
      "parents": [
        "0ad8fc5be949341fed719ba3fcee5273ef9696f3"
      ],
      "author": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Thu Sep 07 15:33:57 2017 -0700"
      },
      "committer": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Tue Sep 19 08:06:17 2017 -0700"
      },
      "message": "Display unaccounted time in \"DevStack Component Timing\"\n\nIn the \"DevStack Component Timing\" section, display the unaccounted\ntime.\n\nAlso add the units (seconds) to the output to make it clear to viewers.\n\nChange-Id: Iaca82cc54a355f7077e20e548b771e53387f6628\n"
    },
    {
      "commit": "3cc59ab38cec4951e8117fbbcc0e0810c1478337",
      "tree": "4a3da44a7efb6db66b1a2157a9d78bf7cb5dc260",
      "parents": [
        "86bdfffbe0ac887ccf5a027caedf02837262a081",
        "387aadd14e87f2890ad8969c15edbe9f1d218a5a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Sep 19 13:23:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Sep 19 13:23:09 2017 +0000"
      },
      "message": "Merge \"Install neutron rpms/debs when lib/neutron is used\""
    },
    {
      "commit": "b2503f4692ec25978bdb903eaf0382178fd88ce1",
      "tree": "14341b70fbd1f29b9ad1f8858ffaa8157059308b",
      "parents": [
        "cd06b2ee814f1f9ec363e9476a5fe97305a10152",
        "6bd4924cec73908225e6744b1b00dd86cb39d3ed"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Sep 19 01:51:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Sep 19 01:51:10 2017 +0000"
      },
      "message": "Merge \"Ignore stderr when checking for Python version\""
    },
    {
      "commit": "cd06b2ee814f1f9ec363e9476a5fe97305a10152",
      "tree": "eeafc9bb490a43476e28cd3e9a70a2f8cb9bfc42",
      "parents": [
        "f56a0ae2eca9c5d77799d85b57ea7dbb7cf601dc",
        "477a962861afe2e859179245d6d39cb41f6c499d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Sep 19 01:49:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Sep 19 01:49:24 2017 +0000"
      },
      "message": "Merge \"Enable graceful shutdown for services\""
    },
    {
      "commit": "6bd4924cec73908225e6744b1b00dd86cb39d3ed",
      "tree": "b4028504f406728d01c3dd6a330971a972417643",
      "parents": [
        "f56a0ae2eca9c5d77799d85b57ea7dbb7cf601dc"
      ],
      "author": {
        "name": "Javier Pena",
        "email": "jpena@redhat.com",
        "time": "Fri Sep 15 15:55:00 2017 +0200"
      },
      "committer": {
        "name": "Javier Pena",
        "email": "jpena@redhat.com",
        "time": "Fri Sep 15 15:57:32 2017 +0200"
      },
      "message": "Ignore stderr when checking for Python version\n\nhttps://review.openstack.org/504171 prevented Python version detection\nfrom failing when python3 is not installed. However, \"which python3\"\nreturns a message in stderr when python3 is not there, and this output\ncan make diskimage-builder get confused when parsing\nsource-repository-images.\n\nChange-Id: Idb649dc341ede73c39954b0432ef3cacf379ed37\n"
    },
    {
      "commit": "f56a0ae2eca9c5d77799d85b57ea7dbb7cf601dc",
      "tree": "23779422e8846947d139e59fc9bd057fd551b3ac",
      "parents": [
        "8172b3634ceb51f1a15b7ed36a2a3d69032fbbd7",
        "4324f4ecd99f3cc50dea585bc8b5a680327e54bc"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Sep 14 23:42:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Sep 14 23:42:06 2017 +0000"
      },
      "message": "Merge \"Fix devstack python detection if python3 is missing\""
    },
    {
      "commit": "4324f4ecd99f3cc50dea585bc8b5a680327e54bc",
      "tree": "242710b385b129d0af2fa780fa623a062cc66aed",
      "parents": [
        "71e07c738d33ba2772c42c21f4db38032f2e17be"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Sep 14 12:59:25 2017 -0600"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Sep 14 13:13:15 2017 -0600"
      },
      "message": "Fix devstack python detection if python3 is missing\n\nOn platforms without python3 installed devstack fails the python\nversion check. This does it more gracefully.\n\nChange-Id: I4d79a41eb2d66852ab1a1aa8bd383f8e3e89cdc0\n"
    },
    {
      "commit": "387aadd14e87f2890ad8969c15edbe9f1d218a5a",
      "tree": "203d35a98c0febb4e3327252cba2c1fc9d298446",
      "parents": [
        "71e07c738d33ba2772c42c21f4db38032f2e17be"
      ],
      "author": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Thu Sep 14 09:25:59 2017 -0600"
      },
      "committer": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Thu Sep 14 12:37:27 2017 -0600"
      },
      "message": "Install neutron rpms/debs when lib/neutron is used\n\nlib/neutron service prefixes are neutron-* not q-*. We should install\nthose packages either way.\n\nThe patch moves files/*/neutron into files/*/neutron-common so that we\ncan correctly match */neutron against service specific dependency files\n(f.e. */neutron-agent) and load the common packages if any neutron-*\nservice is present.\n\nChange-Id: I57b36f2ed3f33737223a35d9ed734bb414f31e0b\n"
    },
    {
      "commit": "35a0c573b36236c8d73a0699cc7882170787f494",
      "tree": "22c30c9c6ade345e3563f1f11888d38e186d9a97",
      "parents": [
        "91f62818c3ab5f7f7cee11df7a7b7d3ce290ecb8"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@redhat.com",
        "time": "Sun Sep 10 15:37:56 2017 -0700"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@redhat.com",
        "time": "Sun Sep 10 15:38:21 2017 -0700"
      },
      "message": "Update gate clone error message for Zuul v3\n\nChange-Id: I351de28aa5d5f25187953f1a4502445bc2ce76cc\n"
    },
    {
      "commit": "5b42dcef5d4df2324bf50a7667b4c2f817555238",
      "tree": "d6e08a6e3362af99272a0808118953827af8e361",
      "parents": [
        "80021b8f9fff243b8edad6d9f1139bd080cea608",
        "6d213dfda7d0c3446595ce9edc56408e3924b355"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Sep 10 16:59:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Sep 10 16:59:05 2017 +0000"
      },
      "message": "Merge \"Get default python versions from interpreter\""
    },
    {
      "commit": "ef60f2b7180f269a53f405efa7449618eddf86a1",
      "tree": "85e2c8b1a9e4b15a83186ebe5a8b18dab825fb08",
      "parents": [
        "477a962861afe2e859179245d6d39cb41f6c499d"
      ],
      "author": {
        "name": "Dinesh Bhor",
        "email": "dinesh.bhor@nttdata.com",
        "time": "Tue Sep 05 14:40:32 2017 +0530"
      },
      "committer": {
        "name": "Dinesh Bhor",
        "email": "dinesh.bhor@nttdata.com",
        "time": "Fri Sep 08 12:49:00 2017 +0530"
      },
      "message": "Enable reloadable config in services\n\nuwsgi services:\n[1] By default uwsgi is set to exit on reload this breaks config reloading\n    of the service [1][2]. It needs to be set to \u0027false\u0027.\n[2] Requires to add \u0027systemctl reload\u0027 command support by adding ExecReload\n    in unit file.\n\nNon uwsgi services:\n[1] Non uwsgi services only requires to add ExecReload in unit file.\n\nThere was a similar patch submitted by Matthew Treinish [3] but it was\nalready set to workflow +1(not merged as having dependency on other patch)\nand it was having some issues as specified in comment and missing reload\nfunctionality for other services.\n\n[1] https://etherpad.openstack.org/p/uwsgi-issues\n[2] http://uwsgi-docs.readthedocs.io/en/latest/Options.html#exit-on-reload\n[3] https://review.openstack.org/#/c/490904/2\n\nChange-Id: I78f5e9d4574671c74a52af64724946feb41c2d7a\n"
    },
    {
      "commit": "1ad91a7d4b332faf244696545778497ea65137a4",
      "tree": "8146b739e10801f24cb49458a834b861d12262a5",
      "parents": [
        "a7623994bcdb1985a30ed9c5a03a000579da0b23",
        "cdba1b371628aa0e8bc5b687351c5ee9b39e9bc6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Sep 07 13:38:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Sep 07 13:38:03 2017 +0000"
      },
      "message": "Merge \"Remove screen support from devstack completely\""
    },
    {
      "commit": "477a962861afe2e859179245d6d39cb41f6c499d",
      "tree": "59a314a73112284a03333241ed9758e2350514b1",
      "parents": [
        "63651db44ddef10bc629312707ba6d2a349fbc10"
      ],
      "author": {
        "name": "Matthew Treinish",
        "email": "mtreinish@kortar.org",
        "time": "Fri Aug 04 11:09:26 2017 -0400"
      },
      "committer": {
        "name": "Dinesh Bhor",
        "email": "dinesh.bhor@nttdata.com",
        "time": "Wed Sep 06 11:55:04 2017 +0530"
      },
      "message": "Enable graceful shutdown for services\n\n1] Process using uwsgi:\n   uwsgi services doesn\u0027t support for graceful shutting down [1].\n   It requires some changes in unit files [2] including adding below\n   graceful shutdown hook and changing KillSignal:\n      --hook-master-start \"unix_signal:15 gracefully_kill_them_all\n   All the steps and changes required are specified in etherpad [1].\n\n2] Non uwsgi services needs below changes:\n   In [service] section:\n   a. Add KillMode \u003d process\n   b. Add TimeoutStopSec \u003d infinity\n\nNOTE:\nCreating unit file for services other than uwsgi is handled by the\n\u0027write_user_unit_file\u0027 function [3]. This function is common for all\nthe services so this patch adds the above mentioned parameters for\nservices using ServiceLauncher also though they don\u0027t require.\n\nAdded a new stackrc variable WORKER_TIMEOUT which is required to add\ngraceful shutdown support to uwsgi services. It will be set as a value\nto \u0027worker-reload-mercy\u0027 [4] in uwsgi file of service. The default\nvalue set to this variable is 90.\n\n[1] https://etherpad.openstack.org/p/uwsgi-issues\n[2] https://www.freedesktop.org/software/systemd/man/systemd.kill.html\n[3] https://github.com/openstack-dev/devstack/blob/2967ca3dfd0d64970dfa5dfa7ac2330ee7aa90ed/functions-common#L1439-L1461\n[4] http://uwsgi-docs.readthedocs.io/en/latest/Options.html#worker-reload-mercy\n\nCo-Authored-By: Dinesh Bhor \u003cdinesh.bhor@nttdata.com\u003e\nChange-Id: Ia95291325ce4858b47102dd49504250183f339ab\n"
    },
    {
      "commit": "cdba1b371628aa0e8bc5b687351c5ee9b39e9bc6",
      "tree": "b13e396dbb3826eb76413d9a56c59503bda68138",
      "parents": [
        "d84f10c10b66e4c909880e6c0b5e588981845ccf"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Aug 30 11:11:06 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Sep 01 15:08:17 2017 -0400"
      },
      "message": "Remove screen support from devstack completely\n\nThis tears out the alternative path of using screen, so that we only\nuse systemd enabled paths. This simplifies the number of ways that\ndevstack can be run, and provides a much more reliable process\nlauncher than the screen based approach.\n\nChange-Id: I8c27182f60b0f5310b3a8bf5feb02beb7ffbb26a\n"
    },
    {
      "commit": "6d213dfda7d0c3446595ce9edc56408e3924b355",
      "tree": "7e074f794f15e2c10c64e6e8db5cff586f42733b",
      "parents": [
        "c5aca3c99660a65f9e690b93f7f260ff7cf30c15"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Aug 22 16:05:16 2017 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Aug 25 11:26:37 2017 +1000"
      },
      "message": "Get default python versions from interpreter\n\nQuery the python2/python3 interpreter for it\u0027s version to fill in\nPYTHON3_VERSION and PYTHON2_VERSION defaults.  This means on a\npython3.6 platform such as Fedora 26, we don\u0027t need to override the\ndefault.\n\nChange-Id: Id826f275b99b9f397b95e817941019fc503daa1d\n"
    },
    {
      "commit": "5158486124814cbf032c0e79413c6f856225fd98",
      "tree": "445a86e27d3983aa9b07a05372b960f04f992b56",
      "parents": [
        "c5aca3c99660a65f9e690b93f7f260ff7cf30c15"
      ],
      "author": {
        "name": "Omer Anson",
        "email": "omer.anson@toganetworks.com",
        "time": "Thu Aug 24 17:47:37 2017 +0300"
      },
      "committer": {
        "name": "Omer Anson",
        "email": "omer.anson@toganetworks.com",
        "time": "Thu Aug 24 17:47:37 2017 +0300"
      },
      "message": "Add function is_plugin_enabled\n\nAdd a function which tests if a plugin has been enabled with\nenable_plugin. This is helpful if two co-ordinating projects want to run\nspecific setup in devstack in one only if the other is enabled.\n\nChange-Id: Ibf113755595b19d028374cdc1c86e19b5170be4f\n"
    },
    {
      "commit": "2967ca3dfd0d64970dfa5dfa7ac2330ee7aa90ed",
      "tree": "863aba621af471f9b4bcbabea5652e289f730a5a",
      "parents": [
        "cb62ef83365ff7a4edd73b757339a477a432a5b0",
        "3e9b562d0b1f1815597daa5346ba32ef48f868af"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jun 26 23:26:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jun 26 23:26:27 2017 +0000"
      },
      "message": "Merge \"Actually check if roles are set\""
    },
    {
      "commit": "2b06b1a0728706c70835d34a134b25b032fcfee7",
      "tree": "d5578f994aea472d787e2086e87169a5f07a2264",
      "parents": [
        "580a506f250162078f1aaf970f58033bfeb859e9",
        "07b3bc24a3dc30cf4ec7ab2448128bf5a07fbfc0"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jun 26 06:43:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jun 26 06:43:04 2017 +0000"
      },
      "message": "Merge \"Change restart Always to always\""
    },
    {
      "commit": "3ed001821b5cd2258948660ea35194ab37edb9c5",
      "tree": "fa2febacd3f96fc31c4e8c014c8d16d50451ebd5",
      "parents": [
        "a02b9ba1b195e3ca407cdc657f71b17d706144b6",
        "c087c71834a6eb1d44040142f888b33ffefb5192"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jun 23 23:41:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jun 23 23:41:16 2017 +0000"
      },
      "message": "Merge \"Revert \"systemd: Always create the systemd unit files\"\""
    },
    {
      "commit": "c087c71834a6eb1d44040142f888b33ffefb5192",
      "tree": "ee801b59b5772e44fb9d492401c522b6a7b9e734",
      "parents": [
        "15b0a5f1eb849a30bcea9a1e437e9a88ae2c6f92"
      ],
      "author": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@midokura.com",
        "time": "Thu Jun 15 12:10:45 2017 +0000"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Jun 23 15:08:38 2017 +0000"
      },
      "message": "Revert \"systemd: Always create the systemd unit files\"\n\nThis reverts commit 15b0a5f1eb849a30bcea9a1e437e9a88ae2c6f92.\n\nThe change had an assumption that a service\nis properly configured even when it isn\u0027t enabled.\nThe assumption is not true.\n\nChange-Id: Ib5a8ffe63eaec15bc29bfdd133db7169507bab82\nCloses-Bug: #1698129\n"
    },
    {
      "commit": "418bbddc810045102a97ffdb6a5dda8cdda598da",
      "tree": "e095330ac60b7877bd39ec9d5a46a9649718550f",
      "parents": [
        "b24bfac43dbec9c40a7274a6c51b602fc61226cd",
        "85cf2933ccdd70f4f6d505c9aca36f063eddf229"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jun 15 19:36:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jun 15 19:36:32 2017 +0000"
      },
      "message": "Merge \"Provide timings for OSC during devstack run\""
    },
    {
      "commit": "85cf2933ccdd70f4f6d505c9aca36f063eddf229",
      "tree": "98e49583a361c7e2fce212d73e957e8249b51c5a",
      "parents": [
        "6fbd969c85adb53b82457a3fcf879c2b268103bf"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Mar 27 15:35:13 2017 -0400"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Jun 14 16:43:49 2017 -0700"
      },
      "message": "Provide timings for OSC during devstack run\n\nThe OSC number remain high, and it\u0027s useful to understand how much\ntime we spend making OSC calls, especially to surface it relative to\nother items. The way we embed this in our code makes it hard to\ninstrument.\n\nThis patch creates a wrapper function for OSC which collects the timings\nthen aliases `openstack` to that function. This means any invocations of\nthe openstack utility goes through our function while devstack is\nrunning. Because this is an alias it only affects the stack.sh shell and\nany subshells.\n\nThis also moves the time tracking infrastructure to count in ms,\ninstead of s, because some of these operations are close enough to a\nsecond that rounding early is losing way to many significant\ndigits. We divide by 1000 before reporting to the user.\n\nChange-Id: Ic5f1844ce732d447ee980b3c9fdc417f72482609\n"
    },
    {
      "commit": "3e9b562d0b1f1815597daa5346ba32ef48f868af",
      "tree": "288f3176d40bed2f93efe748d2b8ba03567c32b7",
      "parents": [
        "f4b4a79979c22e116964579ef44f8e9bb3713ad2"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Jun 14 15:29:47 2017 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Wed Jun 14 15:35:29 2017 -0700"
      },
      "message": "Actually check if roles are set\n\nIn the helper functions to check if roles are set and if not add the\nrole and return the id we weren\u0027t actually checking if the role was set.\nThe reason for this was we grepped for name values while outputing only\nuuid values with OSC. Fix for this is straightforward, we just add the\n--role argument to OSC which will filter for us then we don\u0027t have to\nuse a grep on the wrong value type.\n\nChange-Id: I2691b347d2a6273100deb4a1750ab353a8e49673\n"
    },
    {
      "commit": "15b0a5f1eb849a30bcea9a1e437e9a88ae2c6f92",
      "tree": "e236464929ab51d5c4c8f95eb915f32d096014f1",
      "parents": [
        "b3ced44e37d7dea38188209b5380f7c2fcd34b1a"
      ],
      "author": {
        "name": "Markus Zoeller",
        "email": "mzoeller@de.ibm.com",
        "time": "Wed May 31 11:21:22 2017 +0200"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jun 14 14:29:39 2017 +1000"
      },
      "message": "systemd: Always create the systemd unit files\n\nCommit 5edae54 introduced the usage of systemd in Devstack. This allowed\nthe transition away from \u0027screen\u0027. Systemd needs \"user unit files\" to\ndescribe the services. Currently, those unit files get only created when\nan openstack service (n-cpu, c-sch, g-api, ...) is in the list of enabled\nservices (`ENABLED_SERVICES`). This means, when Devstack is fully stacked,\nthere is no way to start the systemd unit of an openstack service which\nis *not* in that list.\n\nThis commit changes that behavior, and creates the systemd unit files\nindependently of the list ENABLED_SERVICES. This means, when Devstack\nis fully stacked, I can start a systemd unit of an openstack service which\nwasn\u0027t in the ENABLED_SERVICES list. This allows more flexible lifecycle\nmanagement of openstack services in the gate, which is useful for tests\nwhich test components which are not in the \"default configuration\" (e.g.\nthe \"nova-serialproxy\" service).\n\nThe `clean.sh` script purges all traces of systemd user unit files created\nby devstack.\n\nChange-Id: I0f7e1ee8723f4de47cbc56b727182f90a2b32bfb\n"
    },
    {
      "commit": "07b3bc24a3dc30cf4ec7ab2448128bf5a07fbfc0",
      "tree": "9eb4dda6087b488dc6b46176ef89f17d7be7d9e1",
      "parents": [
        "dc9ef55fc6be8eb7c83115ec19dfc39256c04302"
      ],
      "author": {
        "name": "gong yong sheng",
        "email": "gong.yongsheng@99cloud.net",
        "time": "Mon Jun 05 14:02:28 2017 +0800"
      },
      "committer": {
        "name": "gong yong sheng",
        "email": "gong.yongsheng@99cloud.net",
        "time": "Mon Jun 05 14:04:00 2017 +0800"
      },
      "message": "Change restart Always to always\n\nChange-Id: I1cb00cc012eda72ff50e958ba1fb04daeac69e26\nCloses-bug: #1695822\n"
    },
    {
      "commit": "8085df74a888bcf9451bf57ed9da3585a8b4bb20",
      "tree": "d08f6cb4ab32bf822da8eb4a053d33fcec687294",
      "parents": [
        "ff40f6e2914eb1d2aedad5ecc2b11ddd41623017",
        "e43f60ba2a3a227918e5fdb652a0adc2643f618d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri May 26 19:24:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri May 26 19:24:51 2017 +0000"
      },
      "message": "Merge \"Use the proper keystone endpoints in clouds.yaml\""
    },
    {
      "commit": "3420019d9d86a130008511e4c31004884fc5f321",
      "tree": "66616e6c0ef3a8c3cc19c18b4e47d372f17e918f",
      "parents": [
        "7834f5285f8a4382ebe11ea9fa950820005fdfe3",
        "0effa1a6cb6960b0d1cf82087e6d60c066b7a5f6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue May 16 14:46:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue May 16 14:46:50 2017 +0000"
      },
      "message": "Merge \"remove some unused *_PROTOCOL from export\""
    },
    {
      "commit": "37a6b0b2d7d9615b9e89bbc8e8848cffc3bddd6d",
      "tree": "8cadf3f6cd0ca26d9b24e9875df9deb95fd82cd2",
      "parents": [
        "d235ca32f972477a23630ef3e3c965a00539be7f",
        "f41bf2a92fab6ffcea48d8b295c04ace4d2fa7ff"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri May 05 19:50:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri May 05 19:50:54 2017 +0000"
      },
      "message": "Merge \"Set SyslogIdentifier for uwsgi processes\""
    },
    {
      "commit": "f41bf2a92fab6ffcea48d8b295c04ace4d2fa7ff",
      "tree": "36b26179b25ee827d2c192d9ea1ce8f71d330824",
      "parents": [
        "b2bfe5617ac43a678a9113d5c955f5456c151319"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri May 05 07:50:52 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri May 05 07:54:26 2017 -0400"
      },
      "message": "Set SyslogIdentifier for uwsgi processes\n\nNow that we aren\u0027t using native journal messages by default, the\nsyslog identifier of all the uwsgi processes is the same. We should be\nmore explicit with those.\n\nChange-Id: Id5406d02407b022d4016517c2e18890973876d88\n"
    },
    {
      "commit": "148d58c3519aca4723edd6eb59fc7150b92e74d7",
      "tree": "551bcdd1d8fe89aa6feba2f08b357f9b599253c5",
      "parents": [
        "8b8441f3becbae2e704932569bff384dcc5c6713"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu May 04 13:08:25 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu May 04 13:08:25 2017 -0400"
      },
      "message": "Make devstack fail early for common systemd pitfalls\n\nThere are a couple of issues that have ended up being hit by devstack\nplugin authors which we can detect and error in a much nicer way\ninstead of them having a cryptic systemd failure.\n\nChange-Id: I45e4ac363aeefb4503015f9e1b57c58f79b58f40\n"
    },
    {
      "commit": "803acffcf9254e328426ad67380a99f4f5b164ec",
      "tree": "446e385dd3423422407506a7b3d40bc709816ef8",
      "parents": [
        "7fe9e784c6128ad686ad47909c38e990b57c253c"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon May 01 10:52:38 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue May 02 06:20:22 2017 -0400"
      },
      "message": "Make ./clean.sh work in more situations\n\nWhen transitioning between different wsgi modes, or service modes, we\nshould really safely stop and cleanup things that are started in any\nservice mode, which makes it easier to ensure that we don\u0027t leave\nthings around from past runs.\n\nChange-Id: I33acbee39e1a2da2bfd79a5dd54b84a12a778be1\n"
    },
    {
      "commit": "c006bbdeb26df2c60f43d222bdf918f9e24d551f",
      "tree": "efb3de250589ad929f797b4f79b2c91d387247c3",
      "parents": [
        "2eb322ab2e16b017ba71cfcc4d2ce84be8e5869c"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Apr 26 06:57:58 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Apr 28 13:21:22 2017 +0000"
      },
      "message": "make USE_SCREEN\u003dFalse imply USE_SYSTEMD\u003dTrue\n\nIn order to start making the transition in the gate make\nUSE_SCREEN\u003dFalse also mean USE_SYSTEMD\u003dTrue. We\u0027ll never actually\ndeclare USE_SYSTEMD\u003dTrue in the gate (as that doesn\u0027t exist for stable\nbranches), but this will let us roll over the existing transition.\n\nWe also have to install systemd-python 234 because we are recording\nexception info in the journal, and all versions before that had a bug\nin processing that.\n\nRemove the somewhat pointless screen following journalctl commands. We\nreally don\u0027t want or need those, and they tend to build up over time.\n\nDepends-On: I24513f5cbac2c34cf0130bf812ff2df6ad76657c\n\nChange-Id: I6af6d1857effaf662a9d72bd394864934eacbe70\n"
    },
    {
      "commit": "e43f60ba2a3a227918e5fdb652a0adc2643f618d",
      "tree": "56dd25e039300df52f8b570bd96c64aeafdecde0",
      "parents": [
        "a292c5068ce8b285afc1ecfd473c91c8789922d3"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Apr 27 18:27:36 2017 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Apr 27 19:32:29 2017 -0500"
      },
      "message": "Use the proper keystone endpoints in clouds.yaml\n\nKEYSTONE_SERVICE_API is the keystone endpoint and it is what we should\nuse. The admin url should DIAF - but until it does, it CERTAINLY should\nnot be the thing we put into clouds.yaml.\n\nChange-Id: If8196a04f852f633e0b7548793f68c92376aa6da\n"
    },
    {
      "commit": "1b245cef7f078139f95260b080558422063f363f",
      "tree": "3cc34bf6e331b5bf067bcccc6fbef971e897697b",
      "parents": [
        "e2fb00ebb721d8641485d1d5eb712a408b18b9d6"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Apr 19 15:51:52 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Apr 20 00:19:20 2017 +0000"
      },
      "message": "Cleanup duplicate get_or_add_user_domain_role\n\nIt turns out that we ended up with duplicate versions of this function\nmerging on top of each other within 3 days, and gerrit didn\u0027t catch\nit. Boo gerrit. Boo bash.\n\nChange-Id: Ic6aa2f9bafdec906de2bc51d5929beeec48a6a40\n"
    },
    {
      "commit": "0effa1a6cb6960b0d1cf82087e6d60c066b7a5f6",
      "tree": "cc91610b2e813ea3b872824ca33bb66328489a96",
      "parents": [
        "227661e88109fa85b352f758c28342efbf7195b9"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 18 15:16:37 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 18 15:16:37 2017 -0400"
      },
      "message": "remove some unused *_PROTOCOL from export\n\nThings like SERVICE_PROTOCOL and KEYSTONE_AUTH_PROTOCOL shouldn\u0027t\nreally be exported in openrc as they encourage using them directly to\nbuild up keystone urls instead of actually using the OS_AUTH_URL.\n\nRemove them.\n\nChange-Id: I4b7cc680f7f14dae29b706a227be540c9e212cad\n"
    },
    {
      "commit": "602e2e93b69b048fb48a043258bd842659a98066",
      "tree": "e7ebe984f3c907a186b32e997bfd5f7d1e777d18",
      "parents": [
        "03fbc0d71bf4ee85820999ef1324dc319ef9d926",
        "9c5ffd8d132866bd6120696e138e5b7b42dc3f23"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Apr 07 22:37:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Apr 07 22:37:24 2017 +0000"
      },
      "message": "Merge \"Handle uwsgi on systemd properly\""
    },
    {
      "commit": "03fbc0d71bf4ee85820999ef1324dc319ef9d926",
      "tree": "f200b41d62749c0819d9b364bd8cde0af8e94a28",
      "parents": [
        "ec60d050f5528ccad53eb22a08ff0e96cea10132",
        "682e0abe1a58edcdde40a92df1f060dc8fa758c8"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Apr 07 00:37:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Apr 07 00:37:36 2017 +0000"
      },
      "message": "Merge \"Do not use libvirt-bin package anymore\""
    },
    {
      "commit": "9c5ffd8d132866bd6120696e138e5b7b42dc3f23",
      "tree": "7cb1207cdf582a8ecb265a708335120c93405c82",
      "parents": [
        "def07b21f86ee70cae223785f0195c91de1f2b64"
      ],
      "author": {
        "name": "Matthew Treinish",
        "email": "mtreinish@kortar.org",
        "time": "Wed Mar 29 16:47:57 2017 -0400"
      },
      "committer": {
        "name": "Matthew Treinish",
        "email": "mtreinish@kortar.org",
        "time": "Mon Apr 03 12:38:29 2017 -0400"
      },
      "message": "Handle uwsgi on systemd properly\n\nuwsgi is a different service type under systemd and shouldn\u0027t be run as\na standard oneshot type. The uwsgi docs outline a good pattern for\nwriting systemd unit files:\n\nhttp://uwsgi-docs.readthedocs.io/en/latest/Systemd.html\n\nThis commit takes those suggestions and creates a separate path for\nwriting uwsgi unit files.\n\nChange-Id: I9b541b86781afdded311dba058cedd783e1a0dfa\n"
    },
    {
      "commit": "5edae54855b6b9af4283cef07e0b0d1a0f90cd3e",
      "tree": "38a1c4516ffc6f472f455363fac5bd24c5b65425",
      "parents": [
        "fb73a8fc6fa8cdc826b10c47490bc47cd0e6776a"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Mar 21 20:50:24 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Mar 28 07:19:15 2017 -0400"
      },
      "message": "initial work to enable systemd service running\n\nDuring the PTG there was a discussion that the screen developer\nworkflow wasn\u0027t nearly as useful as it once was. There were now too\nmany services to see them all on one screen, and one of the most\ncommon service restart scenarios was not restarting one service, but a\nbunch to get code to take effect.\n\nThis implements a 3rd way of running services instead of direct\nforking via bash, or running under screen, which is running as systemd\nunits.\n\nLogging is adjusted because it\u0027s redundant to log datetime in oslo.log\nwhen journald has that.\n\nSwift needed to have services launched by absolute path to work.\n\nThis is disabled by default, but with instructions on using it. The\nlong term intent is to make this the way to run devstack, which would\nbe the same between both the gate and local use.\n\nSome changes were also needed to run_process to pass the run User\nin. A hack around the keystone uwsgi launcher was done at the same\ntime to remove a run_process feature that only keystone uwsgi uses.\n\nChange-Id: I836bf27c4cfdc449628aa7641fb96a5489d5d4e7\n"
    },
    {
      "commit": "682e0abe1a58edcdde40a92df1f060dc8fa758c8",
      "tree": "7a75f8824516470bfe44f97bb894e1ac458008e4",
      "parents": [
        "dab52d755481500dce3bf5f990037cde5d8022eb"
      ],
      "author": {
        "name": "David Rabel",
        "email": "rabel@b1-systems.de",
        "time": "Fri Mar 17 19:19:00 2017 +0100"
      },
      "committer": {
        "name": "David Rabel",
        "email": "rabel@b1-systems.de",
        "time": "Fri Mar 24 10:44:10 2017 +0100"
      },
      "message": "Do not use libvirt-bin package anymore\n\nThe package libvirt-bin is a transitional package in Debian and should\nnot be used anymore.\n\nUbuntu Xenial is an exception here.\n\nBecause of that this change also adds the possibility to use \"not:\" to\nexclude distros in files/debs/* just as \"dist:\" limits distros.\n\nDepends-On: Icc59ea79f54d4ff8751f2e353ee3530fff3d961e\nCloses-Bug: #1673840\nChange-Id: I3998a7178d14ec40eae5cb199d66da9546cd6ccf\n"
    },
    {
      "commit": "6523d6e09789076d0a430bf7b608511fcb1c406a",
      "tree": "d96213973217dd7ff0611091f6facdced64a31ce",
      "parents": [
        "73a3e2decd2e7d9fd652fb40c4e697794d9abd05",
        "afef8bf097356d7bb37c57d0daa44653c7905c17"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Mar 08 13:31:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Mar 08 13:31:57 2017 +0000"
      },
      "message": "Merge \"Make declared variables global\""
    },
    {
      "commit": "afef8bf097356d7bb37c57d0daa44653c7905c17",
      "tree": "0aa5c440428469fa0160285cab3ca6e5573135b2",
      "parents": [
        "6f23555c959ce2a121d57c27a7460815808ac2b6"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Mar 06 14:07:23 2017 -0500"
      },
      "committer": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Tue Mar 07 22:07:29 2017 -0800"
      },
      "message": "Make declared variables global\n\nWhen variables use the \u0027declare\u0027 directive, it is by default a local\nvariable. While other variables have global scope.\n\nFor example:\n   declare -A AN_ARRAY   # local in scope\n   foo\u003d1                 # global in scope\n\nThis causes errors to occur as some of the variables will be local only\nand others will be global.\n\nUpdate the code, as appropriate, so that variables using the \u0027declare\u0027\ndirective also include the \u0027-g\u0027 flag to have them also be global. Not\nevery instance of a declared variable has been updated.\n\nCloses-Bug: #1669509\nCo-Authored-By: John L. Villalovos \u003cjohn.l.villalovos@intel.com\u003e\nChange-Id: I2180b68fe861ad19c6d4ec0df0f9f8a528347862\n"
    },
    {
      "commit": "b9ed1ffc7d9165b906b5fe3a71ddc2a8f66e1ce0",
      "tree": "2c3f690b90b30b122a4cef45a3c6b64268fad2c4",
      "parents": [
        "06d6fcf8617e402bd8182f7decb8788403865e8d",
        "9d49ed983435cd0ff3791224dff47a4d51f0bf01"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 03 02:53:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 03 02:53:05 2017 +0000"
      },
      "message": "Merge \"Added printing exit code of component process if it failed to start\""
    },
    {
      "commit": "71640bfe39d6aec8894e05cf4efb52ae06e20eed",
      "tree": "50c72f37a21082687f5e9c7ab448b4d5b56f31a7",
      "parents": [
        "0072abbf11939a9ab4b5be9f5417b1f463dd4e3d",
        "ff10ac318ce4be49d8bceafb7fea92ae1655b497"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Feb 25 16:02:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Feb 25 16:02:50 2017 +0000"
      },
      "message": "Merge \"Remove distro support based on new libvirt minimum\""
    },
    {
      "commit": "ff10ac318ce4be49d8bceafb7fea92ae1655b497",
      "tree": "0c53e834d7a3b8854d51b0b6d56fb2783d8d9c3c",
      "parents": [
        "e0a37cf21e43fbb4ba3f9f8fa5321a0a0e1bedf1"
      ],
      "author": {
        "name": "Matt Riedemann",
        "email": "mriedem@us.ibm.com",
        "time": "Mon Feb 13 12:44:24 2017 -0500"
      },
      "committer": {
        "name": "Matt Riedemann",
        "email": "mriedem@us.ibm.com",
        "time": "Mon Feb 13 16:31:39 2017 -0500"
      },
      "message": "Remove distro support based on new libvirt minimum\n\nNova is going to increase the minimum required libvirt\nin Pike to 1.2.9 in change:\n\nI9a972e3fde2e4e552f6fc98350820c07873c3de3\n\nBased on the libvirt distro support matrix wiki [1] that\ndrops support for Ubuntu Trusty and Debian 7.0/Wheezy.\n\nTrusty has libvirt 1.2.2 and Wheezy has 0.9.12 (the Wheezy\nsupport should have been removed long ago apparently). The\n7.0 removed here is for Wheezy also based on commit\nb2ef890db3d78b24f9da2f4dd80502165c669ad0.\n\nThis does not undo the check for \"trusty\" with the\nEBTABLES_RACE_FIX in lib/nova_plugins/function-libvirt\nsince you can still force devstack to run on Trusty if\nyou specify the FORCE\u003dyes variable.\n\nNote that RHEL 7.1 has libvirt 1.2.8 so it won\u0027t technically\nwork with devstack and nova + pike + libvirt, but with the\nway os_RELEASE is calculated the minor version is dropped\nfor RHEL distros so we just get \"rhel7\".\n\nAlso note that this doesn\u0027t attempt to continue supporting\nTrusty or Wheezy if nova is not configured to use libvirt,\nsimply in order to start moving forward on devstack distro\nsupport in general and to keep some sanity and closeness\nto what we test with in the CI system.\n\nWhile we\u0027re in here, we also drop Fedora 23 and add\nUbuntu Zesty.\n\n[1] https://wiki.openstack.org/wiki/LibvirtDistroSupportMatrix\n\nDepends-On: I9a972e3fde2e4e552f6fc98350820c07873c3de3\nDepends-On: If69f99bd789e646b0261e27a8a061efde32436f7\n\nChange-Id: I6617283afd798af37e64913b7865cea3c8a62aba\n"
    },
    {
      "commit": "11eb2017ef70a758c54cc984e90e445205886e7e",
      "tree": "b7464d71ba85227fef12d21e58b874ef3451eca1",
      "parents": [
        "6bd3561e9db3175f07299818ddb46a8ac7c72a12"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Feb 13 16:16:59 2017 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Feb 13 16:16:59 2017 -0500"
      },
      "message": "simplify endpoints used in devstack\n\nThe proliferation of internal/admin endpoints is mostly legacy and\nbased on some specific deployment patterns. These are not used by\neveryone, and for the devstack case aren\u0027t really that useful. We\nshould simplify our service catalog down to the minimum we need for\ndevelopment.\n\nChange-Id: Ided7a65c81b3a0b56f0184847fc82e17c29a771e\n"
    },
    {
      "commit": "9d49ed983435cd0ff3791224dff47a4d51f0bf01",
      "tree": "348dd9b2cf5f567e4bbef44cbdeabc535f941b54",
      "parents": [
        "d89b175321ac293454ad15caaee13c0ae46b0bd6"
      ],
      "author": {
        "name": "Joanna Taryma",
        "email": "joanna.taryma@intel.com",
        "time": "Mon Feb 06 11:30:15 2017 -0800"
      },
      "committer": {
        "name": "Joanna Taryma",
        "email": "joanna.taryma@intel.com",
        "time": "Mon Feb 06 11:30:15 2017 -0800"
      },
      "message": "Added printing exit code of component process if it failed to start\n\nWhen command failed and component failed to start, original exit code\nwas overwritten due to original command being executed in background.\nThis commit adds information about command\u0027s exit code to echoed message\nabout component\u0027s start up failure.\n\nChange-Id: I8a3dd485b1b1f2d70d42c5610baac7c0c713f53a\nSigned-off-by: Joanna Taryma \u003cjoanna.taryma@intel.com\u003e\n"
    },
    {
      "commit": "51ecf0a869720ae5e8845b95fd2973b2760dcecf",
      "tree": "3893a7edd1ec93d561ca6e230c0f0dfbd4770dc6",
      "parents": [
        "281c5c22ce7f4e7d367f689488e15ad77695a183"
      ],
      "author": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Thu Jan 05 16:11:17 2017 -0500"
      },
      "committer": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Thu Jan 05 18:41:29 2017 -0500"
      },
      "message": "Introduce a PYTHON env var\n\n* $PYTHON will have the path to python runtime to be used\n* Use $PYTHON to run all the scripts\n\nChange-Id: Ib5ab7820fc18cae5e50ea47302b610494197ad47\n"
    },
    {
      "commit": "fefd3e9c460b9689a8febede2dc731ba12cb32d6",
      "tree": "ad807fe9580ddc70c86abaf829490f5ff29e465b",
      "parents": [
        "de7b435b144400567d2f91d57b955f913bdcab0f",
        "8b1bbd690c3aea36dea804542c1bc56274b2ad31"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 03 19:53:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 03 19:53:44 2017 +0000"
      },
      "message": "Merge \"Make deprecated() output to stderr\""
    },
    {
      "commit": "95ed7c6f0513debdc0c692e78b898c08b84eab99",
      "tree": "e66bc3451d61f1f70ff0b93aba4911998de6cc36",
      "parents": [
        "894cbd654591b0cb2ff66d99af3175fb4f39902c"
      ],
      "author": {
        "name": "Zane Bitter",
        "email": "zbitter@redhat.com",
        "time": "Tue Dec 20 17:29:14 2016 -0500"
      },
      "committer": {
        "name": "Zane Bitter",
        "email": "zbitter@redhat.com",
        "time": "Tue Dec 20 20:29:06 2016 -0500"
      },
      "message": "Don\u0027t buffer log output in sed\n\nServices that run inside Apache use tail -f on the corresponding log\nfile to display output in the screen session. However, they also use sed\nto replace some control characters, and this means that the output is\nbuffered. This results in debugging experiences that range from\n\"impossible\" (the log you want isn\u0027t shown) to \"Kafkaesque nightmare\"\n(the log you want isn\u0027t shown, except that sometimes it is, and\nsometimes it isn\u0027t even though you double-checked and you\u0027re completely\nsure that you must have output a log, but when you check back later you\nrealise it actually is and you wonder if history is actually not mutable\nafter all and begin to question what is real and what is not).\n\nThis adds the --unbuffered option to ensure streaming output.\n\nChange-Id: I665ff5f047156401d8152f478d834ac40ff31658\n"
    },
    {
      "commit": "8b1bbd690c3aea36dea804542c1bc56274b2ad31",
      "tree": "61853c0913ead35e0936efc73ac870b98ff3b72b",
      "parents": [
        "c74315e055a770ef3508276442816fffde07cfc6"
      ],
      "author": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@midokura.com",
        "time": "Thu Dec 01 22:29:12 2016 +0900"
      },
      "committer": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@midokura.com",
        "time": "Thu Dec 01 22:31:21 2016 +0900"
      },
      "message": "Make deprecated() output to stderr\n\nSo that it can be used by functions like _determine_config_server,\nwhich is used like RESULT\u003d$(_determine_config_server).\n\nChange-Id: Ia4e641c5529b95ada30ae662221f370bc7fa88a7\n"
    },
    {
      "commit": "9a69a1abfc05a0aab72185347a82d75576476a93",
      "tree": "6ead2ec1cd91c6d66e49214016633668669155a2",
      "parents": [
        "3dd0b2b7728611fcfbf69095b27b9cf28d53c0d4",
        "21d84c29b22fb69b00739ae40d69f80d5182a94e"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Nov 29 23:45:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Nov 29 23:45:09 2016 +0000"
      },
      "message": "Merge \"If plugin is enabled multiple times fail\""
    },
    {
      "commit": "f5e78b6fb64ec45b177c2b73468f0ffe04c774e0",
      "tree": "d2f09ce84c618c12a2a357a87a5374723025843a",
      "parents": [
        "e8f90d1e5b67b04db8372b69e52a6ae08f883608",
        "7938d83d3bd37ef63cfea60e188918848ea87858"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 28 10:28:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 28 10:28:47 2016 +0000"
      },
      "message": "Merge \"Allow provider network to be used for ssh validation\""
    },
    {
      "commit": "4d61ed5c77809799179a48f13080b1ce49b612f7",
      "tree": "4e1b845ecfd91ee0e50ec0047e1b3967c5118a3c",
      "parents": [
        "9c5b3b110aeacd49ca48315f1bb1f28acc6ef282",
        "90742fc1be7b4ad77bf3fda110d5a9bda4eb2100"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 28 10:06:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 28 10:06:24 2016 +0000"
      },
      "message": "Merge \"Pass branch parameter to git clone\""
    },
    {
      "commit": "bcaadd63d8739b528f0121775d6612aebd333a4f",
      "tree": "191532739118463166c0315ee22fb945b140bc08",
      "parents": [
        "a3bb131c138859367f4529720121fd3eb8e239fd"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Wed Nov 23 12:43:02 2016 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Wed Nov 23 13:20:33 2016 +0100"
      },
      "message": "Apache reload issue when it is stopped\n\nSince 4b49e409f853104dae021dfca1a9342ec9ac4709 devstack\nstarted to use reload instead of restart.\n\nUsing reload in devstack for a fresh install,\ndoes not makes too much sense unless multiple service\nplugin touches the same service configs.\n\nSystemd rejects to reload something,\nwhich was not loaded before.\n\n $ sudo /bin/systemctl reload httpd\n httpd.service is not active, cannot reload.\n\nWe will switch to `reload-or-restart` action instead of `reload`,\nit is more likely the action what the previous patch wanted.\n\nChange-Id: I70d597fbe4a8923d937ba8432e29edefb27d1058\n"
    },
    {
      "commit": "90742fc1be7b4ad77bf3fda110d5a9bda4eb2100",
      "tree": "a6728aeb90580398c3e6a8a5d5edb60b6492c72b",
      "parents": [
        "5dbb826a547195b3cc33ff4f30f6d79d0ae08045"
      ],
      "author": {
        "name": "Jakub Wachowski",
        "email": "jakub.wachowski@ts.fujitsu.com",
        "time": "Fri Nov 18 14:28:47 2016 +0100"
      },
      "committer": {
        "name": "Jakub Wachowski",
        "email": "jakub.wachowski@ts.fujitsu.com",
        "time": "Mon Nov 21 07:42:50 2016 +0000"
      },
      "message": "Pass branch parameter to git clone\n\nWithout this parameter, when we set GIT_DEPTH,\nit may happen that we clone only master and\nthen cannot checkout branch\n\nChange-Id: I39376914f8bfc286a308c99db6bc92cddab195b5\n"
    },
    {
      "commit": "7938d83d3bd37ef63cfea60e188918848ea87858",
      "tree": "e9d483a168b1bfe48937d501b40c91c3a0969996",
      "parents": [
        "7976f31fb956dcb1cbeea92906f5609f0b43acc4"
      ],
      "author": {
        "name": "Michael Turek",
        "email": "mjturek@linux.vnet.ibm.com",
        "time": "Tue Apr 12 14:55:21 2016 -0400"
      },
      "committer": {
        "name": "Michael Turek",
        "email": "mjturek@linux.vnet.ibm.com",
        "time": "Thu Nov 17 13:40:01 2016 -0500"
      },
      "message": "Allow provider network to be used for ssh validation\n\nCurrently devstack assumes that the network used for ssh\nvalidation is the private network. This patch adds a hook that\nsets the network used for ssh validation based on whether or not\nprovider networking is being used. It also moves the function\n\u0027is_provider_network\u0027 into functions-common as it will now be\nused by both tempest and neutron.\n\nChange-Id: I265c9e26c9bfb18b7e201f27d8912b8bec235872\n"
    },
    {
      "commit": "56b39126853ff47525c89c7ba3c02422a639ddc3",
      "tree": "df40d31bc2fad923c91c93567acfafed6844e1a6",
      "parents": [
        "7976f31fb956dcb1cbeea92906f5609f0b43acc4"
      ],
      "author": {
        "name": "Gary W. Smith",
        "email": "gary.smith@hpe.com",
        "time": "Wed Nov 16 22:03:43 2016 -0800"
      },
      "committer": {
        "name": "Gary W. Smith",
        "email": "gary.smith@hpe.com",
        "time": "Wed Nov 16 22:10:37 2016 -0800"
      },
      "message": "Use -y on zypper remove to avoid hanging\n\nWhen using zypper remove, include the -y option to avoid stack.sh from\nhanging waiting for user confirmation.  Due to output buffering, the\nscript could hang before giving the user the prompt to enter Y to\ncontinue, making it unclear why the script was hanging.\n\nChange-Id: I5ea761e5ae0829439953c385f8e7d0546acba886\nCloses-Bug: 1642736\n"
    },
    {
      "commit": "21d84c29b22fb69b00739ae40d69f80d5182a94e",
      "tree": "6e8896498ee283bde4c178d15e4da70b65091601",
      "parents": [
        "319abcaf85791961baaed0019fa67c79c26047e0"
      ],
      "author": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Fri Nov 11 15:26:11 2016 -0800"
      },
      "committer": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Wed Nov 16 08:55:40 2016 -0800"
      },
      "message": "If plugin is enabled multiple times fail\n\nWhen using the enable_plugin command and grenade jobs it can be\neasy to enable the same plugin twice, as the grenade job has a\nregistration section and the configuration in project-config can also\nenable it due to code-reuse in project-config.\n\nIf a plugin is enabled twice it will likely fail, though it won\u0027t be\nobvious that it was due to the plugin being enabled multiple times.\n\nThis change makes it so if it sees the same plugin name is enabled\nmore than once it will die and an error message outputted.\n\nChange-Id: I9f1d7e58b861b04473b6a57c9ad404203fb7277a\n"
    },
    {
      "commit": "ac65a5cac01aa6d66857fba08fc022c9bc1f413c",
      "tree": "c6c5ce4f495bb4f2427185a5c94fd33b8d8c620a",
      "parents": [
        "5ff21b3d632de4fcae9a59e495bcdde66ef32ec6",
        "a4705403aa6a4ba0f5ea8c67bff89a67d0be2070"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Nov 15 01:35:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Nov 15 01:35:44 2016 +0000"
      },
      "message": "Merge \"yum_install: fix awk return code\""
    },
    {
      "commit": "c271b3ea1fe16561b7a46507fdf961668182b256",
      "tree": "8539f6e600b81515ac5c849cf0d4244e99cfaff5",
      "parents": [
        "563d3777823fa4ee113ac930c4066c3f8d5f8373"
      ],
      "author": {
        "name": "Mike Perez",
        "email": "thingee@gmail.com",
        "time": "Mon Oct 03 16:00:33 2016 -0700"
      },
      "committer": {
        "name": "Mike Perez",
        "email": "thingee@gmail.com",
        "time": "Mon Oct 03 16:50:27 2016 -0700"
      },
      "message": "Update OpenStackClient role list commands\n\nThis command is deprecated. The new command is role assignment list.\n\nChange-Id: I8dba0be21d5af6751bea13d8ff29cd4b7589ab3e\n"
    },
    {
      "commit": "69e3c0aac99981f17c76c22111e5c397824b8428",
      "tree": "5161ff84adf40accaccb94041a2a19a9869ec259",
      "parents": [
        "9cea4e8570f6a7e1d022bf9eae09223d3144c695"
      ],
      "author": {
        "name": "Ian Cordasco",
        "email": "graffatcolmingov@gmail.com",
        "time": "Mon Sep 26 12:53:14 2016 -0500"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Mon Sep 26 12:21:41 2016 -0700"
      },
      "message": "Update certificate creation for urllib3\n\nurllib3 1.18 was released today and contains new more correct hostname\nmatching that takes into account the ipAddress portion of a certificate\nand disallows matching an IP Address against a DNS hostname.\n\nChange-Id: I37d247b68911dc85f55adec6a7952ed321c1b1d8\n"
    },
    {
      "commit": "a4705403aa6a4ba0f5ea8c67bff89a67d0be2070",
      "tree": "a778e897380cbd2a58b3e7b1f2e5cd6073e41694",
      "parents": [
        "dec121114c3ea6f9e515a452700e5015d1e34704"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Sep 23 15:08:48 2016 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Sep 23 15:44:57 2016 +1000"
      },
      "message": "yum_install: fix awk return code\n\nTIL:\n\n  Similarly, all the END rules are merged, and executed when all the\n  input is exhausted (or when an exit statement is executed).\n\ni.e. matching YUM_FAILED calls \"exit\", which falls through to the END\nrules which calls \"exit result\" ... which is zero.  i.e. if the return\ncode is 1 then we actually hide that and return with zero.\n\nThis is rather annoying because errors that should halt to alert us of\na package install failure pass through, only for you to have to debug\nmuch later on seemingly unrelated problems.\n\nThis always sets \"result\" and thus should be returning the right\nthing.  I\u0027ve updated the documentation to hopefully make it clearer\nwhat\u0027s going on.\n\nChange-Id: Ia15b7dc55efb8d3e3e945241b67a468b8a914672\n"
    },
    {
      "commit": "4b49e409f853104dae021dfca1a9342ec9ac4709",
      "tree": "dc27f7ff83839baa55b459ca4aa2230c4ed19439",
      "parents": [
        "fb1e1cc7e3de4483de48661b03a4417e2d24957a"
      ],
      "author": {
        "name": "Gregory Haynes",
        "email": "greg@greghaynes.net",
        "time": "Wed Aug 31 18:19:51 2016 -0700"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Tue Sep 20 08:14:11 2016 -0700"
      },
      "message": "Use apache for tls-proxy ssl termination\n\nStud is now abandonware (see https://github.com/bumptech/stud) and is\nnot packaged in xenial. Lets use Apache for SSL termination since its\nthere already.\n\nChange-Id: Ifcba410f5969521e8b3d30f02795541c1661f83a\n"
    },
    {
      "commit": "a270f5e242f2532389395abfe49eb6780b50a0db",
      "tree": "904719756e5e3ac5e0416964ebdce60fb812cc03",
      "parents": [
        "413cca397a457c1abfeeb4a83abbef799d4494cc",
        "c9f6327844c794789ea3c3905cc8e04523262f71"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Aug 31 20:14:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Aug 31 20:14:49 2016 +0000"
      },
      "message": "Merge \"Remove lib/ceph\""
    },
    {
      "commit": "a25ae6c03de2d87bca4f708ffc338c66164eec3b",
      "tree": "6e8345ce290b4e2d1d6b5918f8f9f46347c2f6ff",
      "parents": [
        "43ff27b7e8e9d209d8f1fc0483da717296be93bc"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Aug 31 08:56:37 2016 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Aug 31 08:56:37 2016 -0400"
      },
      "message": "convert apache logs to color for screen\n\nIf we left the ansi color codes in apache logs, we can run a sed\nscript to convert the escaped escapes back to ansi escapes which make\nthe logs colorized again.\n\nThere are 8 \\ because we need to end up with 2 in the final sed, and\nwe get interopolated twice. How much fun is escape interpolation? All\nthe fun.\n\nChange-Id: Id8531cf03ba80f0df62f20add02e757bd63d4f2d\n"
    },
    {
      "commit": "c9f6327844c794789ea3c3905cc8e04523262f71",
      "tree": "609a2f444005562d27a1c065140393b99565c26e",
      "parents": [
        "79722563a67d941a808b02aeccb3c6d4f1af0c41"
      ],
      "author": {
        "name": "Matt Riedemann",
        "email": "mriedem@us.ibm.com",
        "time": "Tue Aug 30 17:21:30 2016 -0400"
      },
      "committer": {
        "name": "Matt Riedemann",
        "email": "mriedem@us.ibm.com",
        "time": "Tue Aug 30 17:21:30 2016 -0400"
      },
      "message": "Remove lib/ceph\n\nAll jobs using ceph as a storage backend have been moved over\nto using the devstack-plugin-ceph repo in project-config so we\nshould be safe to remove the now unused lib/ceph file.\n\nThe files are left in place because the devstack plugin does not\ninstall xfsprogs but it\u0027s used by the create_disk function.\n\nAnd the ceph cinder backend file is left in place since the\ndevstack-plugin-ceph repo uses that by setting\nCINDER_ENABLED_BACKENDS\u003d${CINDER_ENABLED_BACKENDS:-ceph}.\n\nChange-Id: I3fb09fc92bc6ab614e86d701ea46d5741a76b7a8\n"
    }
  ],
  "next": "38245da0b8ab1a08ae192ef2c0d5755a8f88841a"
}
