)]}'
{
  "log": [
    {
      "commit": "6c8e88f61dbe3f767423e895fd015bff9cabeca1",
      "tree": "447320f462d15f5b9f6a00c980f0734b33f527b7",
      "parents": [
        "dc8fc5c1693c5131a1c2df76d0addeb0daa83171",
        "358987f065af05d166539982c282e2f587b5c952"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Fri Oct 14 09:53:29 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Oct 14 09:53:29 2022 +0000"
      },
      "message": "Merge \"Adding devstack support for Rocky Linux 9\""
    },
    {
      "commit": "358987f065af05d166539982c282e2f587b5c952",
      "tree": "350f2ad867f005aa05a641529e4d5dc170cb04a8",
      "parents": [
        "b5c2e7b3fac7e603979fbdf52375154bf932c0f6"
      ],
      "author": {
        "name": "Adrian Fusco Arnejo",
        "email": "afuscoar@redhat.com",
        "time": "Wed Aug 31 19:38:49 2022 +0200"
      },
      "committer": {
        "name": "Adrian Fusco Arnejo",
        "email": "afuscoar@redhat.com",
        "time": "Thu Oct 13 08:29:10 2022 +0000"
      },
      "message": "Adding devstack support for Rocky Linux 9\n\nAdding job and nodeset to run tempest-full-py3 in Rocky Linux 9 instance\n\nChange-Id: I6fb390bfeec436b50a3ddc18d154bbce3f3b1975\n"
    },
    {
      "commit": "e69b78df6fc48a1e70c180d3878164e416adbbdd",
      "tree": "1fda96ac91e80e1d30c64c7e463184b49ed64b3b",
      "parents": [
        "e3bc6b5f571a5b291617ee5227c153002ef8d9c3"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Sep 24 12:51:25 2019 +1000"
      },
      "committer": {
        "name": "Dr. Jens Harbott",
        "email": "harbott@osism.tech",
        "time": "Fri Oct 07 11:47:17 2022 +0200"
      },
      "message": "Simplify role addtion helper functions\n\nBecause adding the role is idempotent, we can save doing the initial\ncheck for role assignment.  Also simplify the output matching by using\nosc\u0027s filters where appropriate.\n\nCo-Authored-By: Jens Harbott \u003charbott@osism.tech\u003e\nChange-Id: If2a661cc565a43a7821b8f0a10edd97de08eb911\n"
    },
    {
      "commit": "e3bc6b5f571a5b291617ee5227c153002ef8d9c3",
      "tree": "1a2552b9b5a526ccbd35eb1ef0b5042825051e5a",
      "parents": [
        "f0ad3e5f3f99dc3cbec94bcced3c6e96fbfdab8b"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Sep 24 12:44:16 2019 +1000"
      },
      "committer": {
        "name": "Dr. Jens Harbott",
        "email": "harbott@osism.tech",
        "time": "Fri Oct 07 11:11:47 2022 +0200"
      },
      "message": "get_or_create_domain: simplify with \"--or-show\" argument\n\nSimilar to other functions, this uses \"--or-show\" to avoid double\ncalls.\n\nCo-Authored-By: Jens Harbott \u003charbott@osism.tech\u003e\nChange-Id: I548f9acd812687838e04b705f86f3b70d2b10caf\n"
    },
    {
      "commit": "90e5479f382af1a5482f0acccdc36c6d18321634",
      "tree": "4d0b9fe3d63cb8492774536689991a627e41256b",
      "parents": [
        "28ee3463937f8c6adc92ac478759a54b35d71554"
      ],
      "author": {
        "name": "Martin Kopec",
        "email": "mkopec@redhat.com",
        "time": "Tue Aug 16 17:29:16 2022 +0200"
      },
      "committer": {
        "name": "Martin Kopec",
        "email": "mkopec@redhat.com",
        "time": "Tue Aug 16 17:29:16 2022 +0200"
      },
      "message": "Remove forgotten LinuxMint occurrence\n\nRight now we don\u0027t officialy support LinuxMint as our\ndocumentation says [1], it seems LinuxMint is a relict\nand got forgotten over time.\n\nThis patch removes LinuxMint from the code in order not to\nconfuse users.\n\n[1] https://docs.openstack.org/devstack/latest/\nCloses-Bug: #1983427\n\nChange-Id: Ie1ced25f89389494b28a7b2e9bb1c4273e002dd5\n"
    },
    {
      "commit": "85340e77f3d15b77dd0dc7c9df240428bfd2e30f",
      "tree": "5dc6942917b3f4c8256665434eef8a8960604c0c",
      "parents": [
        "bd6e5205b115fb0cafed7f50a676699a4b9fc0fe"
      ],
      "author": {
        "name": "Yadnesh Kulkarni",
        "email": "ykulkarn@redhat.com",
        "time": "Mon Jul 11 17:14:40 2022 +0530"
      },
      "committer": {
        "name": "Yadnesh Kulkarni",
        "email": "ykulkarn@redhat.com",
        "time": "Mon Jul 11 17:14:40 2022 +0530"
      },
      "message": "delete __pycache__ directory with sudo privileges\n\nSigned-off-by: Yadnesh Kulkarni \u003cykulkarn@redhat.com\u003e\nChange-Id: I9cf3cd8921347eacc1effb2b197b97bc6ff3e0df\n"
    },
    {
      "commit": "eacaa99853e3c1ed938a5d54b30d69ece8a45335",
      "tree": "1b778c836dd7281c88b19c59c8fd145e005883e0",
      "parents": [
        "8ff52ea12bb855adc9fe26de48b022310c1a5893",
        "d5af514ac9485009229f3b594bccc09e905782fb"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Wed Jun 22 08:53:39 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jun 22 08:53:39 2022 +0000"
      },
      "message": "Merge \"Reduce memory consumption in Cinder services\""
    },
    {
      "commit": "d5af514ac9485009229f3b594bccc09e905782fb",
      "tree": "26d60aee0492020daae91642ff2a565ca09e9e1e",
      "parents": [
        "0ae279b54aa53953f4cf48e2c2aa386b5bc0f2c0"
      ],
      "author": {
        "name": "Gorka Eguileor",
        "email": "geguileo@redhat.com",
        "time": "Wed Jun 08 10:19:50 2022 +0200"
      },
      "committer": {
        "name": "Gorka Eguileor",
        "email": "geguileo@redhat.com",
        "time": "Tue Jun 21 12:16:32 2022 +0200"
      },
      "message": "Reduce memory consumption in Cinder services\n\nThis patch reduces memory usage on the Cinder Volume and Backup services\nby tuning glibc.\n\nThe specific tuning consist on disabling the per thread arenas and\ndisabling dynamic thresholds.\n\nThe Cinder Backup service suffers from high water mark memory usage and\nuses excessive memory.  As an example just after 10 restore operations\nthe service uses almost 1GB of RAM and does not ever free it afterwards.\nWith this patch the memory consumption of the service is reduced down to\nalmost 130MB.  If we add a revert from Cinder (Change-Id\nI43a20c8687f12bc52b014611cc6977c4c3ca212c) it goes down to 100MB during\nmy tests.\n\nThis glibc tuning is not applied to all Python services because I\nhaven\u0027t done proper testings on them and at first glance they don\u0027t seem\nto have such great improvements.\n\nRelated-bug: #1908805\nChange-Id: Ic9030d01468b3189350f83b04a8d1d346c489d3c\n"
    },
    {
      "commit": "c869d59857c636d21ecd0329023038b24252627d",
      "tree": "eb2cda8344a3bfcd26e8a20e329b763abdcc33d8",
      "parents": [
        "e661cae7e8b6f4c843aaac9ecd2d89083d20ed45"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "bhaley@redhat.com",
        "time": "Fri Feb 28 14:55:08 2020 -0500"
      },
      "committer": {
        "name": "Brian Haley",
        "email": "haleyb.dev@gmail.com",
        "time": "Tue Jun 07 02:28:51 2022 +0000"
      },
      "message": "Add support for IPv6 tunnel endpoints\n\nCurrently, neutron tunnel endpoints must be IPv4 addresses,\ni.e. $HOST_IP, although IPv6 endpoints are supported by most\ndrivers.\n\nCreate a TUNNEL_IP_VERSION variable to choose which host IP\nto use, either HOST_IP or HOST_IPV6, and configure it in the\nOVS and Linuxbridge agent driver files. The default is still\nIPv4, but it can be over-ridden by specifying TUNNEL_ENDPOINT_IP\naccordingly.\n\nThis behaves similar to the SERVICE_IP_VERSION option, which\ncan either be set to 4 or 6, but not 4+6 - the tunnel overhead\nshould be consistent on all systems in order not to have MTU\nissues.\n\nMust set the ML2 overlay_ip_version config option to match\nelse agent tunnel sync RPC will not work.\n\nMust set the OVN external_ids:ovn-encap-ip config option to\nthe correct address.\n\nUpdated \u0027devstack-ipv6-only\u0027 job definition and verification role\nthat will set all services and tunnels to use IPv6 addresses.\n\nCloses-bug: #1619476\n\nChange-Id: I6034278dfc17b55d7863bc4db541bbdaa983a686\n"
    },
    {
      "commit": "560ee16a85b22b4456177d289cf53c31c6a1ca6b",
      "tree": "da9a10d19b242e3d2cc414e461439c70c07eaf4a",
      "parents": [
        "08254ca3127042d2ed081df4bcb8ff15ca7bdb2e"
      ],
      "author": {
        "name": "Dr. Jens Harbott",
        "email": "harbott@osism.tech",
        "time": "Thu May 19 13:58:11 2022 +0200"
      },
      "committer": {
        "name": "Dr. Jens Harbott",
        "email": "harbott@osism.tech",
        "time": "Thu May 19 14:06:11 2022 +0200"
      },
      "message": "Drop openEuler support\n\nThe job is broken since it is running with python3.7 and most services\nnow require at least python3.8.\n\nSigned-off-by: Dr. Jens Harbott \u003charbott@osism.tech\u003e\nChange-Id: Ie21f71acffabd78c79e2b141951ccf30a5c06445\n"
    },
    {
      "commit": "d450e146ccc9b43ce151f57523e4e4c88b9fdafb",
      "tree": "cc9f150982e8a174971345666187f74d1497cf72",
      "parents": [
        "85c2999e27b873a516fab75958b313673b6478e5",
        "8615563df47261d9c6dab7c5badbceb399d0e14d"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Sat May 07 10:51:35 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat May 07 10:51:35 2022 +0000"
      },
      "message": "Merge \"Global option for enforcing scope (ENFORCE_SCOPE)\""
    },
    {
      "commit": "8615563df47261d9c6dab7c5badbceb399d0e14d",
      "tree": "afd9108fd082d0bc88762e04b99235bb2be00a04",
      "parents": [
        "8339df03993daed2334c7086241d8fdc935b05f6"
      ],
      "author": {
        "name": "Grzegorz Grasza",
        "email": "xek@redhat.com",
        "time": "Mon Oct 18 16:52:06 2021 +0200"
      },
      "committer": {
        "name": "Grzegorz Grasza",
        "email": "xek@redhat.com",
        "time": "Tue Apr 26 14:17:20 2022 +0200"
      },
      "message": "Global option for enforcing scope (ENFORCE_SCOPE)\n\nThis updates each devstack service library, to use it as the\ndefault value for service-specific RBAC configuration.\n\nChange-Id: I41061d042206c411ee3dd94ce91098e612af7ae7\n"
    },
    {
      "commit": "4baeb3b51fcb6196fa311f823ad3f0ac13ccf341",
      "tree": "39dd8324e74666c29e17fddea7e9fd494b9fc2a7",
      "parents": [
        "676dcaf94487665882be048cfe1f3206d6807e0f"
      ],
      "author": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Wed Apr 13 13:44:07 2022 -0700"
      },
      "committer": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Mon Apr 18 08:05:44 2022 -0700"
      },
      "message": "Write safe.directory items to system git config\n\nThis is necessary for more consistent behavior across multiple\ndistro versions. Apparently somewhere along the way, git started\nlooking at the current user\u0027s home directory instead of $HOME.\n\nRelated-Bug: https://bugs.launchpad.net/devstack/+bug/1968798\n\nChange-Id: I941ef5ea90970a0901236afe81c551aaf24ac1d8\n"
    },
    {
      "commit": "676dcaf94487665882be048cfe1f3206d6807e0f",
      "tree": "fd70fd0ccd9ef3c3a004e7adb121c4aa45b3e598",
      "parents": [
        "ce0ff1fd9d32a3cc33d46caacda555c4f6773515"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Apr 13 15:04:46 2022 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Apr 13 16:49:07 2022 +1000"
      },
      "message": "Mark our source trees as safe for git to use as other users\n\ngit commit [1] introduced a new behaviour to work around a CVE that\ndisallows any git operations in directories not owned by the current\nuser.\n\nThis may seem unrelated to installation, but it plays havoc with PBR,\nwhich calls out to git to get to get revision history.  So if you are\n\"pip install\"-ing from a source tree you don\u0027t own, the PBR git calls\nin that tree now fail and the install blows up.\n\nThis plays havoc with our model.  Firstly, we checkout all code as\n\"stack\" then install it globally with \"sudo\" (i.e. root) -- which\nbreaks.  We also have cases of essentially the opposite -- checkouts\nwe have installed as root, but then run tox in them as a regular user;\ntox wants to install the source in its venv but now we have another\nuser conflict.\n\nThis uses the only available configuration option to avoid that by\nglobally setting the source directories we clone as safe.  This is an\nencroachment of the global system for sure, but is about the only\nswitch available at the moment.  For discussion of other approaches,\nsee [2].\n\nRelated-Bug: https://bugs.launchpad.net/devstack/+bug/1968798\n\n[1] https://github.com/git/git/commit/8959555cee7ec045958f9b6dd62e541affb7e7d9\n[2] https://review.opendev.org/c/openstack/devstack/+/837636\n\nChange-Id: Ib9896a99b6d6c4d359ee412743ce30512b3c4fb7\n"
    },
    {
      "commit": "5e7dad114605f72a349f39634a39cdf6d78430bc",
      "tree": "c9c734765dd75fa9275e55e183192bf94c27bc31",
      "parents": [
        "c0882aeaae8ebdc692f2f0e005f8795bbb6c3d53",
        "ae40825df618a6b8164be8345f5cc1b11a2dc614"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Mon Feb 21 15:22:08 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Feb 21 15:22:08 2022 +0000"
      },
      "message": "Merge \"Use devstack-system-admin for keystone objects creation\""
    },
    {
      "commit": "14a0c09001e8e2304eff4918206163cc7e6db1eb",
      "tree": "dba1ccbdee2ae5590aa5edd587de0e36c24cdb36",
      "parents": [
        "be7b5bf671b4cdc082fb9b7bb73ec55cab0054dd"
      ],
      "author": {
        "name": "Slawek Kaplonski",
        "email": "skaplons@redhat.com",
        "time": "Fri Jan 28 09:44:40 2022 +0100"
      },
      "committer": {
        "name": "Slawek Kaplonski",
        "email": "skaplons@redhat.com",
        "time": "Fri Jan 28 09:52:20 2022 +0100"
      },
      "message": "Fix deployment of Neutron with enforced scopes\n\nAfter patch [1] new RBAC policies changed in the way that SYSTEM_ADMIN\nuser isn\u0027t anymore allowed to e.g. create resources in behalf of some\nprojects. Now PROJECT_ADMIN needs to create such resources instead.\nSo this patch basically reverts most of the changes which were done\nin [2] some time ago.\nIt also introduces new entry in the clouds.yaml file -\n\"devstack-admin-demo\" which is \"admin\" user in the \"demo\" project as\nit\u0027s needed to create some resouces in the demo project now.\n\nAdditionally, because of bug [3] this patch changes way how IPv6\nexternal gateway IP is found using Neutron API. This change may be\nreverted in the future when bug [3] will be fixed.\n\n[1] https://review.opendev.org/c/openstack/neutron/+/821208\n[2] https://review.opendev.org/c/openstack/devstack/+/797450\n[3] https://bugs.launchpad.net/neutron/+bug/1959332\n\nDepends-On: https://review.opendev.org/c/openstack/neutron/+/826828\n\nCloses-Bug: #1959196\nChange-Id: I32a6e8b9b59269a8699644b563657363425f7174\n"
    },
    {
      "commit": "ae40825df618a6b8164be8345f5cc1b11a2dc614",
      "tree": "cb29c32bef25a836f55b94ea503f373b1cc95865",
      "parents": [
        "6d55b2a439fc4362dbaecf7604188ec2b80cd63f"
      ],
      "author": {
        "name": "Grzegorz Grasza",
        "email": "xek@redhat.com",
        "time": "Tue Oct 26 10:37:07 2021 +0200"
      },
      "committer": {
        "name": "Grzegorz Grasza",
        "email": "xek@redhat.com",
        "time": "Wed Jan 26 15:40:42 2022 +0100"
      },
      "message": "Use devstack-system-admin for keystone objects creation\n\nThis is needed so we can set keystone into enforcing secure RBAC.\nThis also adjusts lib/glance, which already partially used\ndevstack-system-admin.\n\nChange-Id: I6df8ad23a3077a8420340167a748ae23ad094962\n"
    },
    {
      "commit": "35aa64e5f7aca0004d46229c648807e1ed803b38",
      "tree": "993ccbbcf32ca12734bdf71b8a604f9c998a449c",
      "parents": [
        "6133c1c95939e7c09072293449402188942c28f9",
        "6f4eafb823e498a8d5eb344376c41f5bec8a1b04"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Tue Jan 11 01:53:55 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 11 01:53:55 2022 +0000"
      },
      "message": "Merge \"Added AlmaLinux to CentOS 8 family\""
    },
    {
      "commit": "7880ba665e2d594b2eabb0533e6dca52e042ca50",
      "tree": "929c86999c7e4588f1f8186015fa86f2286f8fb8",
      "parents": [
        "6c849e371384e468679d3d030fe494a36587c505"
      ],
      "author": {
        "name": "Kevin Zhao",
        "email": "kevin.zhao@linaro.org",
        "time": "Wed Mar 31 04:58:28 2021 +0000"
      },
      "committer": {
        "name": "wangxiyuan",
        "email": "wangxiyuan1007@gmail.com",
        "time": "Wed Dec 22 14:47:27 2021 +0800"
      },
      "message": "openEuler 20.03 LTS SP2 support\n\nopenEuler is an open-source Linux based operating system. The current\nopenEuler kernel is based on Linux and supports multi arch, such as X86_64\nand aarch64. It fully unleashes the potential of computing chips. As an\nefficient, stable, and secure open-source OS built by global open-source\ncontributors, openEuler applies to database, big data, cloud computing,\nand AI scenarios. openEuler is using RPM for package management.\n\nNote:\nCurrently there is no available package for uwsgi-plugin-python3 and ovn, so that\nopenEuler needs manually install them from source.\n\nWebsite: https://www.openeuler.org/en/\n\nChange-Id: I169a0017998054604a63ac6c177d0f43f8a32ba6\nCo-Authored-By: wangxiyuan \u003cwangxiyuan1007@gmail.com\u003e\nSigned-off-by: Kevin Zhao \u003ckevin.zhao@linaro.org\u003e\n"
    },
    {
      "commit": "6c849e371384e468679d3d030fe494a36587c505",
      "tree": "5c1b33f291ad1967d28fcc3f9b589d09859c764a",
      "parents": [
        "a77943f8aab6156e4c7c0d699b575d285dc1e6ad",
        "5ea4c3c18c558ec1fa37e0dd9b28ce66c3da1130"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Sat Dec 04 18:18:06 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Dec 04 18:18:06 2021 +0000"
      },
      "message": "Merge \"Support CentOS Stream 9\""
    },
    {
      "commit": "5ea4c3c18c558ec1fa37e0dd9b28ce66c3da1130",
      "tree": "3e8c9f8c93a01a753a09df434a4fec8ebcd44676",
      "parents": [
        "f9a896c6e6afcf52e9a50613285940c26e353ba3"
      ],
      "author": {
        "name": "Alfredo Moralejo",
        "email": "amoralej@redhat.com",
        "time": "Tue Nov 16 15:13:03 2021 +0100"
      },
      "committer": {
        "name": "Alfredo Moralejo",
        "email": "amoralej@redhat.com",
        "time": "Thu Dec 02 09:10:48 2021 +0100"
      },
      "message": "Support CentOS Stream 9\n\nThis patch includes changes required to run devstack on CentOS Stream 9\nwhich has been already published in official repos by CentOS team [1]:\n\n- Add RDO deps repository for CS9.\n- remove xinetd package from installation for swift. Note that\n  rsync-daemon is installed which should work fine.\n- Replace genisoimage by xorriso in CS9.\n- Use /etc/os-release to identify the distro in CS9 as it doesn\u0027t\n  provide lsb_release command.\n- Use pip from rpm package instead of from get-pip.py as done in Fedora.\n- Add non-voting job devstack-platform-centos-9-stream to the check\n  pipeline.\n\nChange-Id: Ic67cddabd5069211dc0611994b8b8360bcd61bef\n"
    },
    {
      "commit": "487057de80df936f96f0b7364f4abfc8a7561d55",
      "tree": "8f4bd9233a78d9f8e572df19dd8d01bee1de1f0b",
      "parents": [
        "8d7ac90f005d0f74c6f75369bdf9d3941d2f32ae",
        "9c81321bfc694bd511dee8dd5d04273e368e5545"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Thu Nov 18 00:22:24 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Nov 18 00:22:24 2021 +0000"
      },
      "message": "Merge \"Add additional project personas for secure RBAC\""
    },
    {
      "commit": "9c81321bfc694bd511dee8dd5d04273e368e5545",
      "tree": "cfc2ed9aa6192ec6292d7519aa2e2a2b3b46f5a0",
      "parents": [
        "021ae0bcc8f67b6fd307aaf3c8ac59ba6cbe23b6"
      ],
      "author": {
        "name": "Lance Bragstad",
        "email": "lbragstad@gmail.com",
        "time": "Thu Mar 11 16:29:31 2021 +0000"
      },
      "committer": {
        "name": "Dr. Jens Harbott",
        "email": "harbott@osism.tech",
        "time": "Sat Nov 13 20:41:43 2021 +0100"
      },
      "message": "Add additional project personas for secure RBAC\n\nThis commit formalizes some additional users to act as different project\nusers and updates clouds.yaml file so they\u0027re easy to use.\n\nIt creates:\n\n  - a reader on the demo project\n  - a reader on the alt_demo project\n  - a member on the alt_demo project\n\nWith the adoption of secure RBAC personas, these are useful for using\nOpenStack APIs as that work continues.\n\nChange-Id: I3237a771275311377313b7d7d80ac059ac69d031\n"
    },
    {
      "commit": "05e9cb1e19a97dcae477c611781759c66d55d8a2",
      "tree": "c3c8ad0fa7253690661bcf3274230c1597928678",
      "parents": [
        "55c7830b4bf9d49f8bd0be69f6d2f950a384d707",
        "325792d9b9238f9a8b8b493ba50572add99b9d82"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Fri Nov 12 22:18:44 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Nov 12 22:18:44 2021 +0000"
      },
      "message": "Merge \"Clarify error message for ERROR_ON_CLONE\u003dTrue\""
    },
    {
      "commit": "021ae0bcc8f67b6fd307aaf3c8ac59ba6cbe23b6",
      "tree": "97e7ede9caaabb4d805befa235e714d8b51dabbd",
      "parents": [
        "9101fbf5c40119ba717f4267265e9d99c067bc4d"
      ],
      "author": {
        "name": "Lance Bragstad",
        "email": "lbragstad@gmail.com",
        "time": "Thu Mar 11 15:47:50 2021 +0000"
      },
      "committer": {
        "name": "Dr. Jens Harbott",
        "email": "harbott@osism.tech",
        "time": "Fri Nov 05 10:44:58 2021 +0100"
      },
      "message": "Update lib/keystone to add more system users\n\nKeystone has supported system-scope since Queens and we already make\nsure we create a cloud profile for system-admin in\n/etc/openstack/clouds.yaml.\n\nThis commit ensures keystone creates a couple of new users to model\nsystem-member and system-reader personas. Doing this by default in\ndevstack makes it easier for people to use.\n\nWe\u0027ve already taken a similar approach in tempest by setting up the\nvarious system personas for tempest clients to use.\n\nChange-Id: Iceb7c5f517db20072e121dc7538abaa888423c67\n"
    },
    {
      "commit": "325792d9b9238f9a8b8b493ba50572add99b9d82",
      "tree": "836e5bf4743eb89ff2f74a154efaf701067ecdd4",
      "parents": [
        "82facd6edf7cefac1ab68de4fe9054d7c4cb50db"
      ],
      "author": {
        "name": "Ghanshyam Mann",
        "email": "gmann@ghanshyammann.com",
        "time": "Fri Oct 15 15:55:54 2021 -0500"
      },
      "committer": {
        "name": "Ghanshyam",
        "email": "gmann@ghanshyammann.com",
        "time": "Wed Nov 03 19:34:19 2021 +0000"
      },
      "message": "Clarify error message for ERROR_ON_CLONE\u003dTrue\n\nIf ERROR_ON_CLONE is set to True which is case for\nall the devstack based job, devstack does not clone the\nrepo instead raise error. From current error message, it\nis difficult to know that ERROR_ON_CLONE is True until we\ntraceback the code or check devstack-base job set ERROR_ON_CLONE\nto True.\n\nCurrent error message is like:\n-------\n+ functions-common:git_clone:560           :   echo\n\u0027The /opt/stack/oslo.limit project was not found; if this is a gate job, add\u0027\n  The /opt/stack/oslo.limit project was not found; if this is a gate job, add\n+ functions-common:git_clone:561           :   echo \u0027the project to the\n $PROJECTS variable in the job definition.\u0027\nthe project to the $PROJECTS variable in the job definition.\n+ functions-common:git_clone:562           :   die 562 \u0027Cloning not\n  allowed in this configuration\u0027\n--------\n\nAdding ERROR_ON_CLONE info in error message will help to\nknow the reason of devstack not cloning the repo.\n\nChange-Id: I9e9852f046fefb299b4ef4446323e9c86437212f\n"
    },
    {
      "commit": "6f4eafb823e498a8d5eb344376c41f5bec8a1b04",
      "tree": "1661bb2fd00f951ec0f9af0dbc9a3935abda7a38",
      "parents": [
        "0d5ba5b25061a5b7af658e449dd56bf54702c653"
      ],
      "author": {
        "name": "zenkuro",
        "email": "zenkuro@protonmail.com",
        "time": "Thu Jul 15 19:24:28 2021 +0300"
      },
      "committer": {
        "name": "zenkuro",
        "email": "zenkuro@protonmail.com",
        "time": "Thu Jul 15 21:47:23 2021 +0300"
      },
      "message": "Added AlmaLinux to CentOS 8 family\n\nChange-Id: I9fb6f010842a495c838d468b47dc5081596f41a2\n"
    },
    {
      "commit": "6af3cb9eb273c127c20bc07f65c9a5d7f8ba95cd",
      "tree": "0007d4bf31aae5bbc7e3d271c451ad0a46def663",
      "parents": [
        "74bcc0b4ef2e8fd3a6caf831608d920dd90d0523"
      ],
      "author": {
        "name": "Julia Kreger",
        "email": "juliaashleykreger@gmail.com",
        "time": "Thu Mar 11 11:28:47 2021 -0800"
      },
      "committer": {
        "name": "Julia Kreger",
        "email": "juliaashleykreger@gmail.com",
        "time": "Tue Jun 15 11:32:45 2021 -0700"
      },
      "message": "nova ironic-hypevisor - support scoped auth config\n\nThe Secure RBAC effort has updated Ironic such that it\ncan support a mode where it is scope enforcing for all\ninteractions with the API. Due to the design, and operating\nnature of Ironic\u0027s API, services speaking with it must\nauthenticate with a system scope to have a full picture\nof the universe.\n\nIn this case, we need to update the nova configuration\naccordingly such that the compute service understands\nhow to talk to ironic so that it can see the nodes under\nmanagement.\n\nIronic will likely update this again at a later point in\ntime to enable a \"hybrid\" mixed-mode as the operating model\nand related permissions *should* allow nova to use a project\nscoped \"owner\" account with Ironic, in order to access\nand command nodes to deploy. But at this time, we\u0027re\nfocusing on the exclusive operating mode.\n\nChange-Id: I1946725ce08c495178c419eaf38829f921c91bbe\nNeeded-By: https://review.opendev.org/c/openstack/ironic/+/778957\n"
    },
    {
      "commit": "970891a4ef863344fb1425727b3c3bf91b1c8bb5",
      "tree": "782a639eca786b0645bd8b95cc8d5b77351092c3",
      "parents": [
        "3c6d1059298788d4ce35845fdb1bef2938046702"
      ],
      "author": {
        "name": "Stephen Finucane",
        "email": "sfinucan@redhat.com",
        "time": "Tue Mar 02 16:45:39 2021 +0000"
      },
      "committer": {
        "name": "Stephen Finucane",
        "email": "sfinucan@redhat.com",
        "time": "Fri Mar 05 15:10:19 2021 +0000"
      },
      "message": "Remove references to XenAPI driver\n\nThe XenAPI driver was removed during the Victoria release [1], while the\nlibvirt+xen driver has been removed in the Wallaby release [2]. Remove\nreferences to Xen from DevStack since its all a no-op now.\n\n[1] I42b302afbb1cfede7a0f7b16485a596cd70baf17\n[2] I73305e82da5d8da548961b801a8e75fb0e8c4cf1\n\nChange-Id: If7055feb88391f496a5e5e4c72008bf0050c5356\nSigned-off-by: Stephen Finucane \u003csfinucan@redhat.com\u003e\n"
    },
    {
      "commit": "e7c017bd8998d9cc8c4712efe992239c73f340d1",
      "tree": "1cdf51d35354fdb008fe4765d346937794cdffdb",
      "parents": [
        "97f3100c4f6cc8ae4f7059b5099654ef8b13b0d4"
      ],
      "author": {
        "name": "Sean Mooney",
        "email": "work@seanmooney.info",
        "time": "Wed Dec 09 23:53:12 2020 +0000"
      },
      "committer": {
        "name": "Radosław Piliszek",
        "email": "radoslaw.piliszek@gmail.com",
        "time": "Tue Dec 15 19:58:37 2020 +0000"
      },
      "message": "fix is_fedora for centos 8 stream\n\nWhen deploying on the centos 8 stream variant\nthe output of \"lsb_release -i -s\" is\nCentOSStream instead of CentOS\n\nThis breaks the is_fedora function in devstack\npreventing package installation and removal.\n\nChange-Id: I39ccefbd06f46adf5077f8d8001f37d3b190f040\n"
    },
    {
      "commit": "3f28c272d0a3ae78329c81227a66c703d6a489d7",
      "tree": "45bc4dc0ee37b8298f2c0d0c62ffe458fae52ce4",
      "parents": [
        "7de6e0b2eca9ac661a92badef4488d8d6380b06f"
      ],
      "author": {
        "name": "Jens Harbott",
        "email": "j.harbott@x-ion.de",
        "time": "Wed Oct 28 13:05:14 2020 +0000"
      },
      "committer": {
        "name": "Jens Harbott",
        "email": "j.harbott@x-ion.de",
        "time": "Wed Oct 28 13:06:52 2020 +0000"
      },
      "message": "Remove deprecated tail_log function\n\nThis function has been deprecated for a long time, let\u0027s finally\nremove it. It is only generating a warning anyway.\n\nChange-Id: I7bd440adf2ce8283e3ad3d5d09e6b2b877e2b42e\n"
    },
    {
      "commit": "ae21b3556ff215c0f73bc0ebbc90d72fa59a3459",
      "tree": "e1a2b9ac2f26b9ce259c1fa8e1e1b93d5300f7a1",
      "parents": [
        "18b4251bf4f689923a19bf7fbc50d5c2ea422b21"
      ],
      "author": {
        "name": "Sean Mooney",
        "email": "work@seanmooney.info",
        "time": "Tue Sep 01 14:11:45 2020 +0000"
      },
      "committer": {
        "name": "Jens Harbott (frickler)",
        "email": "j.harbott@x-ion.de",
        "time": "Wed Sep 02 04:48:31 2020 +0000"
      },
      "message": "move cleanup of pyc files\n\nPreviously pyc files were only cleaned if clean.sh was run.\nwith this change a new clean_pyc_files function was introduced\nwith the logic that was previously in clean.sh but it is now\ninvoked from unstack.sh\n\nWith the previous behavior you could not stack with horizon\nenabled then unstack and stack again due to the presence of pyc\nfiles that were owned by root.\n\nBy moving the clean to unstack in stead of clean.sh you can\nnow stack, unstack and stack again without hitting the pyc issue.\nsince unstack is invoked by clean the existing clean.sh behavior has\nnot changed in practice except for the fact the pyc files are\nremoved sooner in the process.\n\nThis change also removes support for findutils \u003c 4.2.3\nUbuntu 12.04 and CentOS 6 both have 4.4.2 since they were\nreleased 8 years ago and are now EOL its fair to assume\nthat all modern distros have 4.2.3+\nhttps://repology.org/project/findutils/versions\n\nChange-Id: I13c9aad9be7e0930a0d875b7d382090caf0b8982\n"
    },
    {
      "commit": "c3031944501c6a76c65e75a7e3bd88ac8f123216",
      "tree": "205a9ee9dedd3f6276a1d5b137b388648840f117",
      "parents": [
        "52e52d8937e8e57b2bc16f67c3651a358fa6fb77",
        "587e0a3510ea3b40abbdffcd1fe3204e416c4bc9"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.opendev.org",
        "time": "Mon Aug 17 15:52:03 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Aug 17 15:52:03 2020 +0000"
      },
      "message": "Merge \"Fix is_fedora RHEL 8 detection\""
    },
    {
      "commit": "52e52d8937e8e57b2bc16f67c3651a358fa6fb77",
      "tree": "52aa9b86c0439dcba68dd70b2a91812f46f077c1",
      "parents": [
        "647fef0b405deea635a710c124d508a59e6d1119"
      ],
      "author": {
        "name": "Luigi Toscano",
        "email": "ltoscano@redhat.com",
        "time": "Thu Aug 13 09:55:08 2020 +0200"
      },
      "committer": {
        "name": "Luigi Toscano",
        "email": "ltoscano@redhat.com",
        "time": "Thu Aug 13 09:55:08 2020 +0200"
      },
      "message": "Add a dependency file for os-brick (and add lsscsi)\n\nThere are a few dependencies which are really os-brick-specific.\nThey are listed in its bindep.txt file, but os-brick is usually\ninstalled from pip, so its bindep.txt file is not available.\n\nAs those dependencies are needed by the various services\nwhich use os-brick, move them to their own dependency file\n(with the addition of the new lsscsi, required by the next\nos-brick stable release) and make sure that file is parsed\nwhen installing the services which require os-brick.\n\nSide note: there should be a way to avoid this duplication\nalso for pip-installed libraries (normal services can use\nfiles/ or even bindep, but in this case the source is not always\navailable), (temporarily?) duplicate them, as it has been\nthe case for the other os-brick dependencies already listed here.\n\nChange-Id: I9ab6e215dbef9ebdb1946da2f9a40ce020ecc95b\n"
    },
    {
      "commit": "587e0a3510ea3b40abbdffcd1fe3204e416c4bc9",
      "tree": "dd02a9146a7d32bafe4da12dbd5ba1b60f78d6b9",
      "parents": [
        "647fef0b405deea635a710c124d508a59e6d1119"
      ],
      "author": {
        "name": "Carlos Goncalves",
        "email": "cgoncalves@redhat.com",
        "time": "Sat Aug 01 21:47:55 2020 +0200"
      },
      "committer": {
        "name": "Carlos Goncalves",
        "email": "cgoncalves@redhat.com",
        "time": "Sat Aug 01 21:47:55 2020 +0200"
      },
      "message": "Fix is_fedora RHEL 8 detection\n\nWhile RHEL 7 is detected as RedHatEnterpriseServer, RHEL 8 is\nRedHatEnterprise.\n\n  $ lsb_release -i -s\n  RedHatEnterprise\n\nChange-Id: I3d750d808c6ebea9c230f0508cdbc016415b9922\n"
    },
    {
      "commit": "dd3731c86a13334125715e44880491042526227c",
      "tree": "8a7ab0eb332e6bfb6d960883b8e01674711fb006",
      "parents": [
        "32d5b1ea2f7908b3558dd38d32553abeaf5db40b"
      ],
      "author": {
        "name": "Sean McGinnis",
        "email": "sean.mcginnis@gmail.com",
        "time": "Tue Jul 28 08:51:41 2020 -0500"
      },
      "committer": {
        "name": "Sean McGinnis",
        "email": "sean.mcginnis@gmail.com",
        "time": "Tue Jul 28 08:57:22 2020 -0500"
      },
      "message": "Install bindep packages when installing lib from src\n\nMost libs maintain their own system packages in a local bindep.txt file.\nWe don\u0027t currently use those when installing packages from source, which\ncan result in broken package installs.\n\nThis adds a flag to always attempt to install bindep packages if the\nbindep.txt file exists. If a file cannot be found, it will just emit a\nwarning and carry on.\n\nChange-Id: Ia0570f837b8af1c3fee0a314b026a4a7ed27e6a9\nSigned-off-by: Sean McGinnis \u003csean.mcginnis@gmail.com\u003e\n"
    },
    {
      "commit": "32c00890ed5f296ccb829196accfb437dbed8f6f",
      "tree": "72991ac293b8badf665b275bb2145dcddf2afa0e",
      "parents": [
        "02da0c40f9511d0f52964e35145819bf9fc1eeff"
      ],
      "author": {
        "name": "Jens Harbott",
        "email": "j.harbott@x-ion.de",
        "time": "Wed Apr 10 10:33:39 2019 +0000"
      },
      "committer": {
        "name": "Jens Harbott",
        "email": "j.harbott@x-ion.de",
        "time": "Fri Jun 26 15:26:22 2020 +0200"
      },
      "message": "Prepare for dropping keystone admin endpoint\n\nKeystone no longer has any special functionality hidden behind the admin\nendpoint. Stop referencing it in consumers, so it can later be dropped\ncompletely.\n\nChange-Id: I04a5d77908005268cc7c59e7e9ddeea70f6732e2\n"
    },
    {
      "commit": "7a0fa4fd9e5db7253fee0820fc002703d43bca3c",
      "tree": "c3c8ecd2b681d96bca0e9c2df304d973e3604dfc",
      "parents": [
        "54edc7aeef97df768477b5fa14f8fc45266a9c2e"
      ],
      "author": {
        "name": "Maciej Józefczyk",
        "email": "mjozefcz@redhat.com",
        "time": "Thu Mar 05 16:55:50 2020 +0100"
      },
      "committer": {
        "name": "Radosław Piliszek",
        "email": "radoslaw.piliszek@gmail.com",
        "time": "Tue May 26 16:08:19 2020 +0000"
      },
      "message": "Update cirros image to cirros-0.5.1\n\nNew cirros with recent fixes for metadata service\nhas been released. [1]\nLet\u0027s update the image version in gate.\n\nThis also includes a fix to pass image name to SDK tests.\n\n[1] https://github.com/cirros-dev/cirros/pull/11/commits/e40bcd2964aa496a9d03e1aaf95cf7a86938f129\n\nChange-Id: I6ccd646f1c22a99bed0bebf6e363d2190241b667\nCo-authored-by: Radosław Piliszek \u003cradoslaw.piliszek@gmail.com\u003e\n"
    },
    {
      "commit": "67fd81a484b2e9153e39d583c03ffc929ef6703e",
      "tree": "bd147052e84c6743b5f68660d6c48b7b24ab7cbc",
      "parents": [
        "36705b52336a442dc05d9874638d269834ff93b7"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Apr 30 09:24:04 2020 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Apr 30 16:05:15 2020 +1000"
      },
      "message": "Cleanup yum things\n\nWe no longer support platforms with Yum on master.  Cleanup old\nreferences and convert to dnf.\n\nWe don\u0027t need any of the failure wrapper stuff as dnf runs in strict\nmode by default.\n\nThere seem to be a few callers out there, so we\u0027ll leave it called\nyum_install for now.\n\nChange-Id: Ie71a48fd85b00a97a14bf260cd013b18af4cce06\n"
    },
    {
      "commit": "bcb2c30c317834f62cab470dc0b58670d945a6ef",
      "tree": "646a2b87bc883d71e888c5f514b22fa7475de2b9",
      "parents": [
        "4143ce6fc95ccd9bde88c22baaa3eeaba58183f8"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Jan 13 16:31:20 2020 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Jan 13 16:31:20 2020 +1100"
      },
      "message": "Remove TRACK_DEPENDS\n\nThis was added in 2012 with I89677fd54635e82b10ab674ddeb9ffb3f1a755f0,\nbut I can not see it being used anywhere currently.\n\nIt\u0027s use of virtualenv\u0027s has become problematic in a python2\ndeprecated world, but since it is not used, remove it to avoid further\nconfusion.\n\nChange-Id: I65d44d24f449436ca6229928eee2c5a021793055\n"
    },
    {
      "commit": "474f535a14598133728fedda884b437b1ce6e5e2",
      "tree": "3eab000329aa8f50ddb62a3e17f0c58282a646fd",
      "parents": [
        "1f6bea1768c2066f3dd5604aee569ad633f45fbc"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Aug 08 09:15:11 2019 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Aug 08 09:15:11 2019 +1000"
      },
      "message": "oscwrap: make a little quieter\n\nA huge part of the logs is irrelevant bash aliases captured by the\nopenstack client timing wrapper from the run of \"openstack complete\",\nwhich is only helpful on interactive systems where you\u0027ll interact\nwith the command line.  Call it directly to avoid capturing the logs.\n\nWhile we\u0027re here, turn off tracing inside the oscwrap function, which\nis called frequently.  It\u0027s not useful for debugging.\n\nChange-Id: I1cb5399fe7ee6f0e547a9cfff70396aa2007632e\n"
    },
    {
      "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\""
    }
  ],
  "next": "3420019d9d86a130008511e4c31004884fc5f321"
}
