)]}'
{
  "log": [
    {
      "commit": "85e6aaf54136409a7944fb645ec1bc78f212529b",
      "tree": "5e8c4b3b8bed13a46e132f3e0b07d418c84d678a",
      "parents": [
        "cc391e49d987d2810250a13e4281dcc195dd17dd",
        "698796f1aeb0d9a559488bad9f1d03e4941b061e"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Thu Jan 17 04:35:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jan 17 04:35:27 2019 +0000"
      },
      "message": "Merge \"Fix an issue in iniset function\""
    },
    {
      "commit": "698796f1aeb0d9a559488bad9f1d03e4941b061e",
      "tree": "aefe7515b4d236f4182ae982f058d52abfd8921d",
      "parents": [
        "a88a22969cb557456d3a8db8ae734a59a1ba8066"
      ],
      "author": {
        "name": "Yi Wang",
        "email": "yi.c.wang@intel.com",
        "time": "Fri Dec 14 10:35:26 2018 +0800"
      },
      "committer": {
        "name": "Yi Wang",
        "email": "yi.c.wang@intel.com",
        "time": "Sat Jan 12 08:53:26 2019 +0800"
      },
      "message": "Fix an issue in iniset function\n\nGiven the file to be configured, if user \"stack\" even doesn\u0027t have\nread access, the result of configuration is not expected. iniset with\n\"-sudo\" option will always create the section and the option which we\nwant to configure for each calling, no matter whether this section and\nthis option exist in the file or not. The root cause is the calling of\ngrep and ini_has_option in iniset don\u0027t use the \"sudo\" option.\n\nChange-Id: I9d21322046b7be411c4c7c28fefc24894fa2e131\nSigned-off-by: Yi Wang \u003cyi.c.wang@intel.com\u003e\n"
    },
    {
      "commit": "36377f63e348200cd091b702c74350062a69fff9",
      "tree": "e9962c68b82b43a6b415c7aa71722ce3ce5e841e",
      "parents": [
        "a88a22969cb557456d3a8db8ae734a59a1ba8066"
      ],
      "author": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Tue Dec 04 11:33:03 2018 -0500"
      },
      "committer": {
        "name": "Tom Barron",
        "email": "tpb@dyncloud.net",
        "time": "Wed Jan 09 09:05:36 2019 -0500"
      },
      "message": "install under python3 by default when enabled\n\nRemove the requirement that services explicitly enable python3 support\nin order to be tested under python3 when running with python3\nenabled. Keep the enable_python3_package() function for backwards\ncompatibility, for now, since it is called in some devstack plugins.\n\nExplicitly add swift to the set of packages that should not be installed\nusing python3 by default until full support is available.\n\nChange-Id: I8ab0a7c242bbf5bf3f091f5a85a98e2f4543f856\nSigned-off-by: Doug Hellmann \u003cdoug@doughellmann.com\u003e\n"
    },
    {
      "commit": "57bc01b3202e14ce8b722f7fcebddc8c8ae2159e",
      "tree": "fdc32f65596240e9149390be64747ad3b31592e4",
      "parents": [
        "e5cac49b04084407432b60c5670c25961bd7302a"
      ],
      "author": {
        "name": "Jens Harbott (frickler)",
        "email": "j.harbott@x-ion.de",
        "time": "Mon Aug 27 13:23:18 2018 +0000"
      },
      "committer": {
        "name": "Jens Harbott (frickler)",
        "email": "j.harbott@x-ion.de",
        "time": "Mon Aug 27 13:23:18 2018 +0000"
      },
      "message": "Revert \"Update branches for stable/rocky\"\n\nThis reverts commit e5cac49b04084407432b60c5670c25961bd7302a.\n\nChange-Id: Ieceb5030a6c21378adcb9bf9c51cd862e0b0d01a\n"
    },
    {
      "commit": "e5cac49b04084407432b60c5670c25961bd7302a",
      "tree": "a67aab2bbd35a5bbe85d08525060300a0783b111",
      "parents": [
        "8c1052001629d62f001d04c182500fa293858f47"
      ],
      "author": {
        "name": "ghanshyam",
        "email": "gmann@ghanshyammann.com",
        "time": "Fri Aug 24 10:38:01 2018 +0000"
      },
      "committer": {
        "name": "ghanshyam",
        "email": "gmann@ghanshyammann.com",
        "time": "Fri Aug 24 10:38:01 2018 +0000"
      },
      "message": "Update branches for stable/rocky\n\nChange-Id: Ia6de4b83f56c5ac0af19b0ca4f12aa4d47fd963a\n"
    },
    {
      "commit": "c7c67658c1daa40bfcdddfc99d1e05a70d205e66",
      "tree": "c57b27c9970718ac1ecf5beef9af75c3be6dd01a",
      "parents": [
        "0d1bee17680d55c654e9b804d1b55e1437b65d06"
      ],
      "author": {
        "name": "Luigi Toscano",
        "email": "ltoscano@redhat.com",
        "time": "Mon Jun 04 10:59:57 2018 +0200"
      },
      "committer": {
        "name": "Luigi Toscano",
        "email": "ltoscano@redhat.com",
        "time": "Mon Jun 04 11:00:08 2018 +0200"
      },
      "message": "iniset: fix handling of keys with spaces\n\nCeph for example uses them. Creation already worked, but not\nupdates of existing keys.\n\nCloses-Bug: 1774956\n\nChange-Id: I20cb61c08079b9cd9ad56ac875525abf1442bff6\n"
    },
    {
      "commit": "236250f1c3e9f328f0dc23ab168afbcfa639a33b",
      "tree": "2c6830075f1fdb3bfe67ceae6c846002788198d9",
      "parents": [
        "9cc3e636fc25b84231ff4e204dfddbd07b933909"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Mar 23 08:27:57 2018 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Mar 23 08:27:57 2018 -0500"
      },
      "message": "Rename python-openstacksdk to openstacksdk\n\nChange-Id: Ia77163f330f674146b369dfebea56bd97820057e\nDepends-On: https://review.openstack.org/554662\n"
    },
    {
      "commit": "9cc3e636fc25b84231ff4e204dfddbd07b933909",
      "tree": "36ea666f6f730327c8e478e18d979b149dc03d98",
      "parents": [
        "5bae5e93c7de5baad71f0b0ddcbe41bd72add7c3",
        "6f27fca4a76aceaadab3776c87c48743671ce502"
      ],
      "author": {
        "name": "Zuul",
        "email": "zuul@review.openstack.org",
        "time": "Fri Mar 23 05:56:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 23 05:56:30 2018 +0000"
      },
      "message": "Merge \"Zuul: support plugin dependencies\""
    },
    {
      "commit": "6f27fca4a76aceaadab3776c87c48743671ce502",
      "tree": "d51f6446e32d9df2e618202411d563249efd2ed8",
      "parents": [
        "b3517ca103f44e44c2464878d8cc8caa84222cc8"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@redhat.com",
        "time": "Tue Nov 21 17:05:43 2017 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@redhat.com",
        "time": "Thu Mar 22 11:50:49 2018 -0700"
      },
      "message": "Zuul: support plugin dependencies\n\nChange-Id: I81302e8988fe6498fea9f08ed66f5d0cc1fce161\n"
    },
    {
      "commit": "a4922067009b4e293811ec6aa976ef7f72363069",
      "tree": "e5cb00430d16de1efb59ab39652faf8dd0dff93c",
      "parents": [
        "e46d6ad2b7a1033385eb80fc641be930c985a7ca"
      ],
      "author": {
        "name": "Sean McGinnis",
        "email": "sean.mcginnis@huawei.com",
        "time": "Thu Feb 15 07:45:10 2018 -0600"
      },
      "committer": {
        "name": "Sean McGinnis",
        "email": "sean.mcginnis@huawei.com",
        "time": "Thu Feb 15 11:21:15 2018 -0600"
      },
      "message": "Centralize setting default branch for stable branching\n\nOne of the steps when we create a new stable branch is to\nbranch devstack, then update the default branch for most\nrepos to use the new stable branch for each repo.\n\nThis requires making multiple updates throughout stackrc,\nand to further complicate things, there are some repo\nbranch variables for branchless repos that should not be\nupdated along with the others.\n\nThis can be error prone if not fully aware of these\nexceptions. To simplify this process a little, this\npatch adds two common variables - one that can be set to\nthe new stable branch name for all of the repos that\nshould be branched, and one that can be used for all of\nthe branchless repos to make it explicit that those\nvalues should be left alone. The cycle-trailing repos\nhave until two weeks after final release to branch, so\nalso adding another variable for those to make it easy\nto update them at a later time, separately from the\nother repos.\n\nChange-Id: I82aa19e739eeda3721bac1cb5153ad0bf2d1125a\n"
    },
    {
      "commit": "f8dc558486fdb484b31338aa30933e33c061638c",
      "tree": "b117ff1714ed5accc7430822ef1c0bde4066b59b",
      "parents": [
        "c1700973886bce1ec212c788e28a6fa372329b2d"
      ],
      "author": {
        "name": "Akihiro Motoki",
        "email": "amotoki@gmail.com",
        "time": "Sun Dec 24 08:17:01 2017 +0900"
      },
      "committer": {
        "name": "Akihiro Motoki",
        "email": "amotoki@gmail.com",
        "time": "Sun Dec 24 08:21:15 2017 +0900"
      },
      "message": "Drop django_openstack_auth related code\n\nIn Queens cycle, the code of django_openstack_auth was merged into\nthe horizon repository. The master branch of django_openstack_auth\nwill be retired. (horizon blueprint merge-openstack-auth)\nThis commit drops django_openstack_auth related code from DevStack.\n\n_prepare_message_catalog_compilation in lib/horizon was used only\nin install_django_openstack_auth, so it is dropped too.\n\nChange-Id: If9467c520a1e07d1968b29e485df0097330356bc\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": "a066abedac916751660c73548e7eab2d216323c5",
      "tree": "81c3e7d02f5f6e5e2350c69e5f9129cd67f26e28",
      "parents": [
        "63651db44ddef10bc629312707ba6d2a349fbc10"
      ],
      "author": {
        "name": "Roman Podoliaka",
        "email": "rpodolyaka@mirantis.com",
        "time": "Tue Apr 18 16:18:14 2017 +0300"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Sep 06 12:56:00 2017 +0000"
      },
      "message": "placement: install osc-placement\n\nThis makes sure that the openstack client placement plugin gets\ninstalled when either LIBS_FROM_GIT includes osc-placement or\nplacement is used, which is always now if you\u0027ve enabled nova,\nwhich is enabled by default.\n\nCo-Authored-By: Matt Riedemann \u003cmriedem.os@gmail.com\u003e\n\nDepends-On: Ica83e29780722dd1555904e46b9ff1d1fdf72516\n\nChange-Id: I7c5a5c10288b356302bb3027837d4ed4f0fbad8c\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": "ed7dbe5754b95f54f663f695b27c7c14b1fdbd6c",
      "tree": "efda28261745cc0c451d2bedc76233d26fb0da18",
      "parents": [
        "7e41c6ce669a082fcb5f50ef3503b8d66d19b35f"
      ],
      "author": {
        "name": "Kaitlin Farr",
        "email": "kaitlin.farr@jhuapl.edu",
        "time": "Mon Jun 19 16:50:38 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Jun 22 09:45:28 2017 -0400"
      },
      "message": "Add python-barbicanclient to LIBS_FROM_GIT\n\nAllow python-barbicanclient to be installed from git instead of pip.\n\nChange-Id: I99cd72724e11bab362bcaaeb773f33b2abfe815c\n"
    },
    {
      "commit": "aefc926cd45b2dc74d98f89e3a3b4cc92f2090ff",
      "tree": "fb31dc7f056212e119f0010ec96670d7d334819c",
      "parents": [
        "e1a2448970b1c3df34463b3ccc55321bcb230efb"
      ],
      "author": {
        "name": "Matt Riedemann",
        "email": "mriedem.os@gmail.com",
        "time": "Wed May 31 15:39:48 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Jun 05 20:45:43 2017 +0000"
      },
      "message": "Support installing os-traits from git\n\nThis will be used in a src job for running os-traits changes\nin a dsvm/tempest setup.\n\nChange-Id: I3c4433fb1ca2787e96b577a15d584b625c364ef3\n"
    },
    {
      "commit": "899616290cf54fe12f835bd8e3c43b8829ff9fd1",
      "tree": "bd134f6c6a724b67d30dfe52bcd2ad57879a4d69",
      "parents": [
        "6b1967bba4af935bb9ae0012f5f94361d65fca98",
        "0d9fd60ad4a999ba3d57042b7bc861d86126651a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri May 26 21:21:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri May 26 21:21:19 2017 +0000"
      },
      "message": "Merge \"Change version of noVNC to stable\""
    },
    {
      "commit": "0d9fd60ad4a999ba3d57042b7bc861d86126651a",
      "tree": "aca824d8c222abfb5fbde71a11df235c43248938",
      "parents": [
        "7976f31fb956dcb1cbeea92906f5609f0b43acc4"
      ],
      "author": {
        "name": "Maciej Józefczyk",
        "email": "maciej.jozefczyk@corp.ovh.com",
        "time": "Tue May 23 10:17:48 2017 +0200"
      },
      "committer": {
        "name": "Mateusz Kowalski",
        "email": "mateusz.kowalski@cern.ch",
        "time": "Tue May 23 16:49:13 2017 +0200"
      },
      "message": "Change version of noVNC to stable\n\nIn master branch of noVNC project file vnc_auto.html was renamed to\nvnc_lite.html Because of that nova-novncproxy looks for file that\nactually doesn\u0027t exist.\n\nWe need to change branch of noVNC to latest stable, because other\nprojects are not ready yet to rename the path. Those projects\ndepends on noVNC package installed in system, but it is too old\nfor now for both CentOS (version 0.5) and Ubuntu (version 0.4).\nThe only way to make noVNC console working on Devstack is to change\nthe branch to stable one.\n\nUnit test also has to be modified in order to ignore novnc repo\nfrom checking against cloning non-master branch.\n\nChange-Id: Iaf4761aedf93bc6b914a6a0c5cf1cfedcc29583c\nCloses-bug: #1692513\n"
    },
    {
      "commit": "c5a2f1b1f35820e19007fb0608bc133b625486e0",
      "tree": "fe966fff73abd16b9422bb57061aae59056eeace",
      "parents": [
        "0cfc523ff74d223d2abe2ed95fd9b01d5d442a1b",
        "f9c2a68338aa566051bb301aa0f1b3dec44f5c90"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Apr 19 12:37:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Apr 19 12:37:15 2017 +0000"
      },
      "message": "Merge \"Add cursive to LIBS_FROM_GIT\""
    },
    {
      "commit": "0cfc523ff74d223d2abe2ed95fd9b01d5d442a1b",
      "tree": "6953cfbde65abdb30d8b24fc9d9ba637fc3d276e",
      "parents": [
        "f6c86749fd46e315cfbb6a874cbcd492f4ff242e",
        "968ebeee4146b306c026ca9b51d43ae6a993d1e2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Apr 19 12:33:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Apr 19 12:33:06 2017 +0000"
      },
      "message": "Merge \"Add castellan to LIBS_FROM_GIT\""
    },
    {
      "commit": "4da0fa8c1387e3888de1f4174b478e82e7cc7a67",
      "tree": "0de3b56a07b0b40983f4137b2c3cac03b80faacf",
      "parents": [
        "94047f45cd336239b42a9f3b58546768240400d4"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Apr 13 08:56:44 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Apr 14 15:41:02 2017 -0400"
      },
      "message": "Always install apache and proxy-uwsgi\n\nWe\u0027re going to want to start using it by default so just start with\nalways installing it. This should not negatively impact anything else.\n\nAlso had to fix the test using cowsay, now that cowsay depends on\ncowsay-off.\n\nPart of uwsgi in devstack.\n\nChange-Id: I8306a992d9d006bc0130a255145a6880065aa0df\n"
    },
    {
      "commit": "f9c2a68338aa566051bb301aa0f1b3dec44f5c90",
      "tree": "1a4185d2d12f72d932af41ce528b340900542c00",
      "parents": [
        "94047f45cd336239b42a9f3b58546768240400d4"
      ],
      "author": {
        "name": "Brianna Poulos",
        "email": "Brianna.Poulos@jhuapl.edu",
        "time": "Fri Apr 14 13:00:19 2017 -0400"
      },
      "committer": {
        "name": "Brianna Poulos",
        "email": "Brianna.Poulos@jhuapl.edu",
        "time": "Fri Apr 14 14:00:31 2017 -0400"
      },
      "message": "Add cursive to LIBS_FROM_GIT\n\nAllow cursive to be installed from git instead of pip.\n\nThe barbican-tempest-plugin, which uses cursive indirectly\nthrough nova and glance, would benefit from the ability to\nuse cursive from git instead of pip.\n\nChange-Id: Icae7d310f1ee392d080e7c8e421a26d7c0ef4727\n"
    },
    {
      "commit": "968ebeee4146b306c026ca9b51d43ae6a993d1e2",
      "tree": "1c0a08bc767c56b89237a3fa16e10081c2389ab9",
      "parents": [
        "94047f45cd336239b42a9f3b58546768240400d4"
      ],
      "author": {
        "name": "Brianna Poulos",
        "email": "Brianna.Poulos@jhuapl.edu",
        "time": "Fri Apr 14 11:33:56 2017 -0400"
      },
      "committer": {
        "name": "Brianna Poulos",
        "email": "Brianna.Poulos@jhuapl.edu",
        "time": "Fri Apr 14 12:17:46 2017 -0400"
      },
      "message": "Add castellan to LIBS_FROM_GIT\n\nAllow castellan to be installed from git instead of pip.\n\nCastellan has recently been moved under the oslo framework,\nand the barbican-tempest-plugin tests which use castellan\nwould benefit from the ability to usd castellan from git\ninstead of pip.\n\nChange-Id: I96edca90c61aec84637b7b1ce842eff04c521923\n"
    },
    {
      "commit": "9fecc2ad04a9414bfb3127d80ee02fed1d36a30d",
      "tree": "27c13ed3ed1e86aa72fee8a3985f5d93e53dd305",
      "parents": [
        "03fbc0d71bf4ee85820999ef1324dc319ef9d926"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Apr 07 12:28:40 2017 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Apr 07 15:32:09 2017 -0500"
      },
      "message": "Add OpenStackSDK as a lib install\n\nThis is required to install python-openstacksdk from source for testing\nother projects against master.\n\nChange-Id: Iee7b043ac7d381dadf89d26098f69e935ed81d6b\n"
    },
    {
      "commit": "94129c7d02902e0f000c09c8245be341df1c5965",
      "tree": "731f84b7edfcc48ff2a7f8a229a233a9a17b1b0a",
      "parents": [
        "858a105c81f1571825d086d359ca7538079072fb"
      ],
      "author": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Mon Jan 09 21:24:24 2017 +0000"
      },
      "committer": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Tue Jan 10 16:08:14 2017 +0000"
      },
      "message": "allow config to manage python3 use explicitly\n\nAdd variables ENABLED_PYTHON3_PACKAGES and DISABLED_PYTHON3_PACKAGES to\nwork like ENABLED_SERVICES and DISABLED_SERVICES and to manage which\npackages are installed using Python 3. Move the list of whitelisted\npackages in pip_install to the default for ENABLED_PYTHON3_PACKAGES,\nexcept swift which is not enabled by default for now.\n\nAdd enable_python3_package and disable_python3_package functions to make\nediting the variables from local.conf easier.\n\nAdd python3_enabled_for and python3_disabled_for functions to check the\nsettings against packages being installed by pip.\n\nUpdate pip_install to check if python3 is disabled for a service, then\nsee if it is explicitly enabled, and only then fall back to looking at\nthe classifiers in the packaging metadata.\n\nUpdate pip_install messages to give more detail about why the choice\nbetween python 2 and 3 is being made for a given package.\n\nChange-Id: I69857d4e11f4767928614a3b637c894bcd03491f\nSigned-off-by: Doug Hellmann \u003cdoug@doughellmann.com\u003e\n"
    },
    {
      "commit": "22b63666de41bf62b008cff709168c5e84a0bf3b",
      "tree": "c1697001191dc1d96a06107eb47ca84aa7ed4906",
      "parents": [
        "8040232e05a68ce18e4ddfa233140d604c94cc77"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Dec 09 07:33:01 2016 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Dec 12 09:55:32 2016 -0500"
      },
      "message": "Warn instead of die on undefined config names\n\nWhen using local.conf in multinode envs not everything is going to be\ndefined in all places. Eventually we probably want to make it so we\nhave a host role for these sections or something. But for now warn\ninstead of die when we can\u0027t find a config var.\n\nChange-Id: I6959099373f035fbfe9e540a44e4c52b8e7c95c0\nCloses-Bug: #2000824\n"
    },
    {
      "commit": "77a7296248b2aae4ce878e33e05575748e7e4131",
      "tree": "4b6d83aeb7a656ad33ed023617b6fd47fd550d31",
      "parents": [
        "2f1da40b0ce32927cbbb9506678af0e82a0b1b51",
        "8f985b6ff1179d19872e83c97035fa49a8f660f6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Dec 06 13:36:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Dec 06 13:36:52 2016 +0000"
      },
      "message": "Merge \"Remove heat code from devstack tree\""
    },
    {
      "commit": "02f3f9a6bbb6c4af989ad6cf504d5c49d7c9b4e2",
      "tree": "a2f2577d2a27eaf9e2ac14f8eb7679c02b322cb3",
      "parents": [
        "a3bb131c138859367f4529720121fd3eb8e239fd"
      ],
      "author": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@midokura.com",
        "time": "Sat Nov 26 00:43:07 2016 +0900"
      },
      "committer": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@midokura.com",
        "time": "Sat Nov 26 00:49:55 2016 +0900"
      },
      "message": "meta-config: Fix consecutive same sections\n\nThe current coding fails to process local.conf like\nthe following.  Note: This example is taken from a\nreal use case. [1]\n\n    [[post-config|$NEUTRON_CONF]]\n    [qos]\n    notification_drivers \u003d midonet\n    [[post-config|$NEUTRON_CONF]]\n\n    [quotas]\n    # x10 of default quotas (at the time of writing)\n    quota_network\u003d100\n    quota_subnet\u003d100\n    quota_port\u003d500\n    quota_router\u003d100\n    quota_floatingip\u003d500\n    quota_security_group\u003d100\n    quota_security_group_rule\u003d1000\n\n[1] https://review.openstack.org/#/c/400627/\n\nCloses-Bug: #1583214\nChange-Id: Ie571b5fa5a33d9ed09f30ba7c7724b958ce17616\n"
    },
    {
      "commit": "8f985b6ff1179d19872e83c97035fa49a8f660f6",
      "tree": "cbc2d64c533919145c459cf52024be7698e0a8a2",
      "parents": [
        "ac65a5cac01aa6d66857fba08fc022c9bc1f413c"
      ],
      "author": {
        "name": "xiaolihope",
        "email": "dixiaobj@cn.ibm.com",
        "time": "Wed May 18 00:32:08 2016 +0800"
      },
      "committer": {
        "name": "rabi",
        "email": "ramishra@redhat.com",
        "time": "Tue Nov 15 15:00:43 2016 +0530"
      },
      "message": "Remove heat code from devstack tree\n\nThis removes all of the heat code from the devstack tree, in favor of the\ndevstack plugin in Heat\u0027s tree.\n\nDepends-On: I4bed1e5cef5afa7b049b07640086a86a3f881e13\nDepends-On: Ic392bcc24bc374ee8511a94f1d8f6ac23131c7e3\n\nChange-Id: I5b60422bf1f5fa78aa8f3383f7a222e0356d9e42\n"
    },
    {
      "commit": "06f3639a70dc5884107a4045bef5a9de1fb725a5",
      "tree": "8d06ecb5ab87b41b29b0c0f21728919c0bbf3145",
      "parents": [
        "9b8b922872a6a19d5bc78383a2d484580871f833"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Aug 12 09:35:42 2016 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Aug 12 09:46:36 2016 -0500"
      },
      "message": "Add os-client-config and osc-lib from source\n\nThere is currently a hole in our testing that lets os-client-config,\nwhich sits at the bottom of the dependency chain for some key pieces\nlike neutronclient and python-openstackclient, introduce gate breakages.\nStep one in fixing this is allowing os-client-config to be optionally\ninstalled from source so that jobs can be put into its gate to exercise\nits master vs devstack installs.\n\nAdditionally, osc-lib is a new and lovely library that\u0027s going to need\nthe same things.\n\nWe\u0027re putting both in install_oslo, even though they\u0027re not oslo\nlibraries, because that\u0027ll make grenade work properly.\n\nCo-Authored-By: Monty Taylor \u003cmordred@inaugust.com\u003e\nChange-Id: I747480b6063a62e82ca2b030f274d3e87bf28b3b\n"
    },
    {
      "commit": "bb35715cfe68ad8d1d2ccb2b2e7eb4143e87d678",
      "tree": "b3f01bf87fbc6ff1260e856109a215de714a3b60",
      "parents": [
        "01cbe7c1438d8c7a262c1ac771531c24d08ea54f"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Jun 07 11:20:55 2016 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Jul 01 12:50:18 2016 +0000"
      },
      "message": "add local.conf modifying functions\n\nThis adds a set of local.conf modifying functions which make it easier\nfor consuming projects like devstack-gate to programatically add\nelements to local.conf structured files.\n\nChange-Id: I3427968c2bd43aba12b3619acc27f73c74f0dabb\nCo-Authored-By: fumihiko kakuma \u003ckakuma@valinux.co.jp\u003e\n"
    },
    {
      "commit": "8d0d3115ccf528ff5ae1533a670fc3bd475d0bcc",
      "tree": "9d589d8693070ecec731817c28ecea21c57744eb",
      "parents": [
        "5af67ae0e1c7ce681db8ab3b9fbd09d23b801b44"
      ],
      "author": {
        "name": "Ivan Kolodyazhny",
        "email": "e0ne@e0ne.info",
        "time": "Thu May 26 23:41:49 2016 +0300"
      },
      "committer": {
        "name": "Ivan Kolodyazhny",
        "email": "e0ne@e0ne.info",
        "time": "Thu May 26 23:52:53 2016 +0300"
      },
      "message": "Allow override of python-brick-cinderclient-ext library used by cinder\n\nAdded to requirements:\nhttps://review.openstack.org/309084\n\nFunctional tests were added\nhttps://review.openstack.org/265811\n\nBut they still use the version of python-brick-cinderclient-ext from pip.\n\nThis change updates devstack to pull in the changes from\npython-brick-cinderclient-ext patch sets instead, when configured to do so.\n\nChange-Id: I6d0f09950ea1200d3367a53aa4a3eea9be7abc66\nNeeded-by: I34f3b5ceaad7a50b1e9cadcc764f61c0aabe086d\n"
    },
    {
      "commit": "a046b6052a340b24063be3dc851fa4bbb51d6c00",
      "tree": "1f1c7025bce3f2731b6c2e974297cc03751a50ce",
      "parents": [
        "13b3be10a754c0e0f9fb31ce824d5f2d9cc905de"
      ],
      "author": {
        "name": "Jordan Pittier",
        "email": "jordan.pittier@scality.com",
        "time": "Mon May 02 11:59:52 2016 +0200"
      },
      "committer": {
        "name": "Jordan Pittier",
        "email": "jordan.pittier@scality.com",
        "time": "Mon May 02 11:59:52 2016 +0200"
      },
      "message": "Remove tempest-lib setup\n\nTempest-lib, as a standalone project, is deprecated in favor of a\n\"lib/\" directory inside Tempest\u0027s repo. So remove the installation\nof tempest-lib in DevStack.\n\nChange-Id: I507bfe875777fd25bbe5d67c861f3fca99faa22d\n"
    },
    {
      "commit": "547c393b937e95b1f944964cc8dc597b7402a01a",
      "tree": "23df0f8a4adda159d39c63ff5729291c1272cf05",
      "parents": [
        "22314596af58c0423c02f43fbbb7cbc082156cf4",
        "1258da64085cef851be09923e37d1ed59348b43d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Mar 24 15:22:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Mar 24 15:22:31 2016 +0000"
      },
      "message": "Merge \"Allow install os-vif library used by Nova\""
    },
    {
      "commit": "d99c29032bb0cc89ffe6874c7b879b84897ff0b0",
      "tree": "f0ad4de669a23d4bc9fa528f8d83bdf2a209ae2f",
      "parents": [
        "0a2a7ae8471575d887a19b9bf8b7375ea1fd7f45"
      ],
      "author": {
        "name": "Mark Vanderwiel",
        "email": "vanderwl@us.ibm.com",
        "time": "Thu Mar 17 12:19:16 2016 -0500"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Mar 22 09:34:04 2016 +1100"
      },
      "message": "Add dependency for hexdump\n\nhexdump is used in common function generate_hex_string which is\nused by nova and heat.  The current general dependencies do not\nhave this dependency covered, instead it is usually pulled in by\nother implicit dependencies when a full devstack is built. In\ncases where only a subset is built (like just Heat and keystone)\nhexdump is missing.\n\nAdded unit tests for the generate_hex_string function.\n\nDepends-On: Ib47d802a31a0f4c2a49daa7e6698e37c70a2365a\nChange-Id: I77c8c2019fb8b8174cdfaed3e56ebf728f0732b7\nCloses-Bug: #1558672\n"
    },
    {
      "commit": "1258da64085cef851be09923e37d1ed59348b43d",
      "tree": "1e85ca7a3e704006b565929a9d8ac00eaab82491",
      "parents": [
        "0a2a7ae8471575d887a19b9bf8b7375ea1fd7f45"
      ],
      "author": {
        "name": "Sergey Belous",
        "email": "sbelous@mirantis.com",
        "time": "Mon Mar 21 12:32:06 2016 +0300"
      },
      "committer": {
        "name": "Sergey Belous",
        "email": "sbelous@mirantis.com",
        "time": "Mon Mar 21 12:40:50 2016 +0300"
      },
      "message": "Allow install os-vif library used by Nova\n\nIn future Nova will use os-vif library for some communication with Neutron.\nThis patch add ability to install os-vif library that requires for run\ntempest-jobs for new patches, that used os-vif.\n\nChange-Id: I28e48afd3c740b1aa50c994d99f660f095e7deda\n"
    },
    {
      "commit": "6fff3cc03589cb0fdf02b4bedf1c35bcb000f28d",
      "tree": "a9be2d66dbbe9b607090e786ab3a6c6fd6758a25",
      "parents": [
        "03cf3ce902daa5b53151cd2b8663f4e5533e3177"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Mar 08 12:00:15 2016 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Mar 08 12:00:15 2016 -0500"
      },
      "message": "Fix sorting on LC_ALL\u003dC platforms\n\nWe made assumptions on the platform for sorting purposes, which turned\nout to break with new images being deployed. Explicitly setting LC_ALL\nshould make this work.\n\nChange-Id: Id65f1bff8e38c777fa406d88ac6a2355d6033d94\n"
    },
    {
      "commit": "86561c347d70c5124c139eb80fe1c0466e5a62f2",
      "tree": "e71433f0e96eccfbf3f3ae16390958518392a96a",
      "parents": [
        "29f1ebb6885c22e94a225ba16a268aa26f60131c"
      ],
      "author": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Wed Feb 10 18:37:21 2016 -0700"
      },
      "committer": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Thu Feb 11 11:01:01 2016 -0700"
      },
      "message": "Enable neutron-lib for LIBS_FROM_GIT for backwards compat jobs\n\nChange-Id: I8dd84c59d2ec3a7c01ff4f1aaf7fa61d7466cfd5\n"
    },
    {
      "commit": "dab2f8b5ab4bb549601fb5cc5d2fc1498ba98a24",
      "tree": "d2ac4b04a4a42e8a7f1b3cec20ce6c69fbda49ec",
      "parents": [
        "985761d5bd57aef838746a50d634ff03b196eba5",
        "3919d4c822a38d324adf47697f4b9bedbc906a36"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 11 02:33:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 11 02:33:14 2016 +0000"
      },
      "message": "Merge \"Add diskimage-builder to the list of libraries\""
    },
    {
      "commit": "2d02d29e27ef0e27593adeb0008ee4c74f029ca3",
      "tree": "27fbdff897e467e80bc857199bd2cf8d1e70c7c4",
      "parents": [
        "8c71ffa997ced99cb0eb93cea79e2fd969ee6145",
        "2ba36cda7940d630514a7864132837191d8c561f"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jan 29 05:21:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jan 29 05:21:09 2016 +0000"
      },
      "message": "Merge \"Add vercmp function\""
    },
    {
      "commit": "ba0a659c762e07951cd4f3e305aa5bd09a1a2918",
      "tree": "122d68cd852f22b112fd80836cfc11f68d48e54b",
      "parents": [
        "ea7fd5515344c18a5cec308fada67b6f3f6ab482"
      ],
      "author": {
        "name": "Boris Pavlovic",
        "email": "boris@pavlovic.me",
        "time": "Thu Jan 14 17:31:40 2016 -0800"
      },
      "committer": {
        "name": "Boris Pavlovic",
        "email": "boris@pavlovic.me",
        "time": "Thu Jan 14 18:38:30 2016 -0800"
      },
      "message": "Make OSprofiler repo and branch configurable\n\nOSprofiler is now under Oslo:\nhttps://review.openstack.org/#/c/103825/\n\nAnd we really need this patch to make proper dsvm job for\nOSprofiler\n\nChange-Id: I20f59c52c147303de01544dc975a82b4a741a1b9\n"
    },
    {
      "commit": "3919d4c822a38d324adf47697f4b9bedbc906a36",
      "tree": "f76415a524791e8d15303a59db187fbb03765850",
      "parents": [
        "2cb3db338a17bd26fef1f56fc155be5d01a6ef7e"
      ],
      "author": {
        "name": "Lucas Alvares Gomes",
        "email": "lucasagomes@gmail.com",
        "time": "Mon Dec 14 12:02:55 2015 +0000"
      },
      "committer": {
        "name": "Lucas Alvares Gomes",
        "email": "lucasagomes@gmail.com",
        "time": "Mon Jan 11 19:10:18 2016 +0000"
      },
      "message": "Add diskimage-builder to the list of libraries\n\nAdd diskimage-builder to the list of libraries so it can be installed\nfrom source to be tested in gate.\n\nChange-Id: I6cefac1eb4ebf0196a6b4d4bfc038c00921f0d70\n"
    },
    {
      "commit": "135bd484a9f83099e33e18dd97274ad550a392bb",
      "tree": "2a6a731f79456ac7a1db6778baf973d061ec2b7d",
      "parents": [
        "1195a5b7394fc5b7a1cb1415978e9997701f5af1"
      ],
      "author": {
        "name": "vsaienko",
        "email": "vsaienko@mirantis.com",
        "time": "Fri Dec 11 11:03:52 2015 +0200"
      },
      "committer": {
        "name": "Vasyl Saienko",
        "email": "vsaienko@mirantis.com",
        "time": "Tue Dec 29 09:42:35 2015 +0000"
      },
      "message": "Introduce iniget_sections function\n\nThis function returns list of sections from specified INI file.\nIt is needed for I7938f26015d953efdf720774b5ad2cee4068ac90.\n\u0027iniget_sections\u0027 is needed for automatic node enrollment to\nIronic from INI syntax file.\n\nChange-Id: I52a69ad3bc8fc528e7f20e6b03a98f327acaaa74\nImplements: blueprint ironic-ml2-integration\n"
    },
    {
      "commit": "b889294af7aa1ccf613da28fb08f547306e0f581",
      "tree": "a592990b15a43e838024f0a9613db3044c112779",
      "parents": [
        "4300f83acf06ce1b6b7976a604a756b9f28f57a1",
        "ecf06dbadb7c4cafb7a2fab13e58c1b05dd8a3f2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Dec 01 16:01:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Dec 01 16:01:40 2015 +0000"
      },
      "message": "Merge \"Add test for package file ordering\""
    },
    {
      "commit": "5509ed579773bf1a69bc5fb406a206a6da010c56",
      "tree": "d06172fadcae6f52ec4316b8ec578e0ee5c48093",
      "parents": [
        "bf81732b129675d667d2285859f32db16ef5e2f5"
      ],
      "author": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Mon Nov 30 20:20:21 2015 +0900"
      },
      "committer": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Mon Nov 30 20:25:17 2015 +0900"
      },
      "message": "Fix comment typos in inc/ and tests/ directories\n\nvalu3 \u003d\u003e value3\nenviromnet \u003d\u003e environment\ndirecotry \u003d\u003e directory\nvirualenv \u003d\u003e virtualenv\neditiable \u003d\u003e editable\nenvirnment \u003d\u003e environment\n\nChange-Id: I97fb2d44a37b16d02d4fbdb08bfa33414349f651\n"
    },
    {
      "commit": "7f0be4fc5f5bd8f45087e53c94fae3b9146f486e",
      "tree": "a77f1372145cff6efe15d7e6fdcc77a9983cca4f",
      "parents": [
        "0b6a40bcabeaffef419a0a35f59cd7329e73c8db"
      ],
      "author": {
        "name": "Swapnil Kulkarni (coolsvap)",
        "email": "me@coolsvap.net",
        "time": "Fri Nov 20 10:52:59 2015 +0530"
      },
      "committer": {
        "name": "Swapnil Kulkarni (coolsvap)",
        "email": "me@coolsvap.net",
        "time": "Fri Nov 20 11:17:19 2015 +0530"
      },
      "message": "Updated Typos in devstack\n\n(1/5) Updated HACKING.rst for typos\n(2/5) Updated typos in lib/dlm\n(3/5) Updated typos in lib/ironic\n(4/5) Updated typos in unittest.sh\n(5/5) Updated typos in test_meta_config.sh\n\nChange-Id: I7aafa3af69df9dc6a5923a8557f380d48b73433a\n"
    },
    {
      "commit": "2ba36cda7940d630514a7864132837191d8c561f",
      "tree": "8ccd27a24002f60afa2ea532dffe75cc3108200e",
      "parents": [
        "bcad037697bf062dc1f3471893c6225dd42dfffc"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Nov 12 13:52:36 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Nov 19 09:37:33 2015 +1100"
      },
      "message": "Add vercmp function\n\nThe existing vercmp_numbers function only handles, as the name says,\nnumbers.  I noticed that \"sort\" has had a version sort for a long time\n[1] and, rather than re-implement it badly, use this as a version of\nvercmp that works a bit more naturally.\n\nThis is intended to be used in an \"if\" statement as in\n\n  prog_ver\u003d$(prog_ver --version | grep ...)\n  if vercmp $prog_ver \"\u003c\" 2.0; then\n     ...\n  fi\n\nA test-case is added to test the basic features and some edge-cases.\n\n[1] http://git.savannah.gnu.org/gitweb/?p\u003dcoreutils.git;a\u003dcommitdiff;h\u003d4c9fae4e97d95a9f89d1399a8aeb03051f0fec96\n\nChange-Id: Ie55283acdc40a095b80b2631a55310072883ad0d\n"
    },
    {
      "commit": "ecf06dbadb7c4cafb7a2fab13e58c1b05dd8a3f2",
      "tree": "aaedab8c84db6895e66bca0718131d9a17f0e724",
      "parents": [
        "ca7e4f285cfb68bae13e8df770dc2b5856559ecd"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Nov 09 17:42:23 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Nov 16 15:50:58 2015 +1100"
      },
      "message": "Add test for package file ordering\n\nAdd a simple test to ensure package install files remain sorted\nalphabetically (follow-on from the sorting of the files done in\nI01e42defbf778626afd8dd457f93f0b02dd1a19d)\n\nChange-Id: I75568871e92afcd81dac2c3ce18b84aa34cdd289\n"
    },
    {
      "commit": "ca7e4f285cfb68bae13e8df770dc2b5856559ecd",
      "tree": "e03d3bd038e13059a87a060866174d93ae5f2d31",
      "parents": [
        "d9da93ede2d9214859f5f55f29116c080191cff4"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Nov 13 11:15:15 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Nov 16 15:47:51 2015 +1100"
      },
      "message": "Fix error detection \u0026 exit in report_results\n\nWe wish to fail if we have \u003e0 zero errors, not \u003e1 errors (i.e. exactly\none error did not trigger a failure!)\n\nThis change also brings consistency to the pass \u0026 failure paths by\nensuring report_results exits in both cases, since report_results is\nsupposed to be the last thing run in a test file.\n\nChange-Id: Id4721dffe13721e6c3cd71bca40c3395627e98bf\n"
    },
    {
      "commit": "73de4a42d96780b0a14f36e43dd6cb7934101209",
      "tree": "f99e562aa7e546a65c02b89b44ce2a21f55baec8",
      "parents": [
        "c9f6f1126599c49c6cd838bdaa2a93ffb400e87c",
        "85f42f698c7bd74d53309da486fbf44ed860c348"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Nov 04 15:39:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Nov 04 15:39:03 2015 +0000"
      },
      "message": "Merge \"Provide an error message on bogus config file spec\""
    },
    {
      "commit": "85f42f698c7bd74d53309da486fbf44ed860c348",
      "tree": "8d8a7ab9738ebbd422b6617b780e2a8b56931570",
      "parents": [
        "f86d2e1a05dbcb144bb7614932adcd56514360fd"
      ],
      "author": {
        "name": "Thomas Morin",
        "email": "thomas.morin@orange.com",
        "time": "Tue Sep 01 10:33:10 2015 +0200"
      },
      "committer": {
        "name": "Thomas Morin",
        "email": "thomas.morin@orange.com",
        "time": "Mon Nov 02 15:35:01 2015 +0100"
      },
      "message": "Provide an error message on bogus config file spec\n\nIf local.conf specifies a config file addition in the following way...\n\n[[post-config|$MY_CONF_FILE]]\n[xyz]\nfoo\u003dbar\n\n...and $MY_CONF_FILE points to a file whose directory is not writable by\nthe user running the script, then stack.sh aborts with the following\nobscure message:\n\n  2015-09-01 08:20:08.113 | touch: setting times of \u0027/\u0027: Permission denied\n\nThis patch modifies inc/meta-config to provide a useful error message,\nsuch as:\n\n  2015-09-01 08:20:08.114 | could not create config file / ($MY_CONF_FILE)\n\nThis patch also modifies inc/meta-config so that it provides an error\nmessage if $MY_CONF_FILE is empty (instead of silently ignoring this local.conf\nstatement):\n\n  2015-09-01 09:38:53.406 | bogus config file specification: $MY_CONF_FILE\n  is undefined\n\nChange-Id: I9b78407420318548561012a8672762bc7fdd6db6\nCloses-Bug: 1490881\n"
    },
    {
      "commit": "c77fc2e196b471fc12d4e99f013d68965b639658",
      "tree": "8c8007f9c99bc0864f65d48ea538c627138e739d",
      "parents": [
        "fd3af1d8e2c57aa9b8c0ebeccd322e2614f95678",
        "7792bc39d4f9f7ec7fd1b81ddbb30c30988f03e6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 29 03:00:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 29 03:00:30 2015 +0000"
      },
      "message": "Merge \"Add new oslo.privsep library to oslo repos\""
    },
    {
      "commit": "83a2a42ac020d5364fa15a10e856b8125626c660",
      "tree": "7085827c2ac71f7bb952a30e479f4253065123c5",
      "parents": [
        "a692810ef05304856e5fd12ec786f3445ecca576",
        "54dc19ecad2ed06694a4b6269c2833d9533a26f5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 29 00:44:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 29 00:44:54 2015 +0000"
      },
      "message": "Merge \"Add export_proxy_variables() tests to test_functions.sh\""
    },
    {
      "commit": "7792bc39d4f9f7ec7fd1b81ddbb30c30988f03e6",
      "tree": "47ad5125a35487a0d3e2418e064537f9b5a42ebc",
      "parents": [
        "0afcac2e01580b7aee886272b8ed7eaf9c13132c"
      ],
      "author": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Fri Oct 23 13:57:14 2015 +1100"
      },
      "committer": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Sun Oct 25 17:39:37 2015 +1100"
      },
      "message": "Add new oslo.privsep library to oslo repos\n\nA new project olos.privsep has been created but failes sdvm testing as\neven though the library is added ro PROJECTS and LIBS_FROM_GIT it isn\u0027t\ninstalled by devstack.\n\nAdd oslo.privsep to the install_oslo function\n\nChange-Id: Ia4d56747d56dcfe50889ebbdf9d553df13e1b950\n"
    },
    {
      "commit": "6e9bee1ae587cccc278dc24ae0d9820a222409fe",
      "tree": "db87e22509c52e7e92ba0b70160219bb0fd4dea9",
      "parents": [
        "188b38fc808d0713476dec30f15d60618acd692b",
        "e82bac04981c8e41a919907d16621c9c952d9224"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 15 02:56:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 15 02:56:19 2015 +0000"
      },
      "message": "Merge \"Detect blank variable in trueorfalse\""
    },
    {
      "commit": "e82bac04981c8e41a919907d16621c9c952d9224",
      "tree": "d94a1380349e0154da2581b80b281b13dad3aaab",
      "parents": [
        "c1561f84fb421d2ce28d3c2b07fd7b53f57264bf"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Aug 25 14:29:08 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Oct 09 19:07:50 2015 +1100"
      },
      "message": "Detect blank variable in trueorfalse\n\nAs a follow-on to I8cefb58f49dcd2cb2def8a5071d0892af520e7f7, put in\nsome detection around missing variable-to-test arguments in\ntrueorfalse.\n\nCorrect a couple of places where we were passing in blank strings,\nresulting in the default always being applied.\n\nAdd test-cases and enhance the documentation a little.\n\nDepends-On: I8cefb58f49dcd2cb2def8a5071d0892af520e7f7\nChange-Id: Icc0eb3808a2b6583828d8c47f0af4181e7e2c75a\n"
    },
    {
      "commit": "ada886dd43ccc07f48d3a82d8d3d840fe5096c03",
      "tree": "93d62f1c82edc08d813b7f9f7eb9270e7024e055",
      "parents": [
        "433a9b10ddd6fa67d7459c4943a92ce4f488cebc"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 14:06:26 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 17:03:32 2015 +1100"
      },
      "message": "Don\u0027t mix declaration and set of locals\n\nIa0957b47187c3dcadd46154b17022c4213781112 proposes to have bashate\nfind instances of setting a local value.  The issue is that \"local\"\nalways returns 0, thus hiding any failure in the commands running to\nset the variable.\n\nThis is an automated replacement of such instances\n\nDepends-On: I676c805e8f0401f75cc5367eee83b3d880cdef81\nChange-Id: I9c8912a8fd596535589b207d7fc553b9d951d3fe\n"
    },
    {
      "commit": "e9a4750fe1b111eeb457378c26ca9eea1b5e0085",
      "tree": "d7ef7ebdc7c61f9c2e70516858b57be1b8f30828",
      "parents": [
        "633e740dcfb0a8a107880a6fc6b9aeff8ee43b11"
      ],
      "author": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Sat Jun 27 11:29:09 2015 +0000"
      },
      "committer": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Wed Sep 09 16:44:29 2015 +0000"
      },
      "message": "Remove ceilometer in favor of plugin\n\nThe ceilometer project is moving to using a devstack plugin rather\nthan having ceilometer in the base devstack. This is to allow\ngreater control and flexibility.\n\nChange-Id: I413ab159474b7d7231ad66d3a482201f74efe8a8\n"
    },
    {
      "commit": "3f249b1e21848cbea7798b522a17a279427e55f5",
      "tree": "581bb990d05cf6d592ee9d38811eb356a3e37347",
      "parents": [
        "181441d96d5b7764376eb46a8dbb0d1728ea9a2f",
        "869b72b8512d73d24b42e0fa5c39b8dc0d7b28f7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Sep 01 18:21:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Sep 01 18:21:00 2015 +0000"
      },
      "message": "Merge \"Support installing ironic-lib\""
    },
    {
      "commit": "9f52d648fbffe342b9c822f6519a7992c914f50f",
      "tree": "cf3c521444aa1cf691ffbb5115b175cd146e25ea",
      "parents": [
        "6059752fc0e86145a425288d7de9c9fa5aba6846",
        "cede78748291a8b5ae0dd0dc34c95da4a72fb3ea"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Aug 29 00:38:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Aug 29 00:38:16 2015 +0000"
      },
      "message": "Merge \"Add file creation test\""
    },
    {
      "commit": "a30a98099baa00b29c5e073c5a85b8a647aca954",
      "tree": "b7657bc7a5ebc9373a98b8a533e7403842e522de",
      "parents": [
        "897d116a7c9c09385e7e87e1202d7fa612802c49",
        "f44a024f022d843fd204da6e23b4a98a142c07f3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Aug 27 22:15:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Aug 27 22:15:30 2015 +0000"
      },
      "message": "Merge \"Add -sudo option to ini setting options\""
    },
    {
      "commit": "869b72b8512d73d24b42e0fa5c39b8dc0d7b28f7",
      "tree": "26ef0b5236c826bb28cc52f5938cf2d71cfcc340",
      "parents": [
        "32e0febbc086a1accd90c3d9a9535ebb75495afe"
      ],
      "author": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Thu Aug 13 13:36:23 2015 +0200"
      },
      "committer": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Wed Aug 26 17:34:46 2015 +0200"
      },
      "message": "Support installing ironic-lib\n\nironic-lib will soon become a dependency of ironic, make sure we can\nwrite dsvm gates against it.\n\nChange-Id: I6e66ae770cf5065980848e7e987bfd75765a5ac6\n"
    },
    {
      "commit": "5cbd85738e04a499cf29de834d978dfe7847feba",
      "tree": "b3d0d96f3e9d406473f640cef848917667d55675",
      "parents": [
        "23e749d9bd82bab9a4ce14b6d976133d9b416b80",
        "b997db602e15b60c68c0f7a99db74b5d2419a85c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jul 27 20:43:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jul 27 20:43:50 2015 +0000"
      },
      "message": "Merge \"Cleanup of ini test-case\""
    },
    {
      "commit": "3805b3770c091840f67949762ed38bb1548704d2",
      "tree": "5f3c33e461f9678d28bf4b959124b6b471dec8ac",
      "parents": [
        "d4da210ffb2a9f1274705ba04ec56337e7e1ea1c",
        "21a9077d7cf32ee1c387171b943125e938eaa1b2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 23 14:17:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 23 14:17:49 2015 +0000"
      },
      "message": "Merge \"Allow installing keystoneauth from git\""
    },
    {
      "commit": "cede78748291a8b5ae0dd0dc34c95da4a72fb3ea",
      "tree": "edb95ec50f80d2d72499acfac0438984dce5df39",
      "parents": [
        "f44a024f022d843fd204da6e23b4a98a142c07f3"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 22 13:36:12 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Jul 23 06:46:24 2015 +1000"
      },
      "message": "Add file creation test\n\nEnsure that iniadd is creating files that don\u0027t exist, as it has\nhistorically done.\n\nChange-Id: I2798996f3d46ff1dce410b815a87395f1bf729f9\n"
    },
    {
      "commit": "f44a024f022d843fd204da6e23b4a98a142c07f3",
      "tree": "16578c1561a9793e8cf1be28fe36dd41ad84c325",
      "parents": [
        "b997db602e15b60c68c0f7a99db74b5d2419a85c"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 22 10:34:47 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Jul 23 06:46:24 2015 +1000"
      },
      "message": "Add -sudo option to ini setting options\n\nAdd a -sudo option to allow these functions to operate on root-owned\nfiles.  Test-case is updated, but not enabled by default as we can\u0027t\nexpect test-runner to have sudo access.\n\nChange-Id: I134c3397314c7d9395996eb6c825ecb7e7fdfc69\n"
    },
    {
      "commit": "b997db602e15b60c68c0f7a99db74b5d2419a85c",
      "tree": "2ce2d0c7bfad12814839308d7eba650ead71d6cd",
      "parents": [
        "92884ede5d20a399186c61cf5e003da61838eec4"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 22 10:05:32 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Jul 23 06:46:24 2015 +1000"
      },
      "message": "Cleanup of ini test-case\n\nVarious cleanup to this file.\n\nFirstly create a temporary space to test, rather than working in the\nsource directory.\n\nWe have \"assert_equal\" which simplifies a lot.  Add \"assert_empty\"\nthat is used in a couple of tests too.  Remove a couple of duplicate\ntests.\n\nChange-Id: I7fd476ed63026e67d66a8ac2891b2e4a6687d09c\n"
    },
    {
      "commit": "f0e86a7ac75091c5ceeaeeb4f51869522f23e5f8",
      "tree": "aceb794917cac133a138d31278737721f039000b",
      "parents": [
        "469215d374367ce5b701f0a485be8f5a8f349c96",
        "5c7f39fdcd29a74c402840021ca55f47c359fbf1"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 16 23:55:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 16 23:55:34 2015 +0000"
      },
      "message": "Merge \"Add worlddump unit test\""
    },
    {
      "commit": "54dc19ecad2ed06694a4b6269c2833d9533a26f5",
      "tree": "1e0f088e3f4ea3b927de995f365e705c82665cfe",
      "parents": [
        "47e68afd674fb387b99216f94eac3eb477a6e077"
      ],
      "author": {
        "name": "Mahito OGURA",
        "email": "m.ogura@ntt.com",
        "time": "Tue Jul 14 17:16:42 2015 +0900"
      },
      "committer": {
        "name": "Mahito",
        "email": "m.ogura@ntt.com",
        "time": "Wed Jul 15 23:31:51 2015 +0900"
      },
      "message": "Add export_proxy_variables() tests to test_functions.sh\n\nIn test_functions.sh, There aren\u0027t export_proxy_variables() tests.\nThis patch add test of export_proxy_variables to test_funstions.sh.\n\nChange-Id: I76f2bab84f4019961e612b0bff0ab66646b6e160\n"
    },
    {
      "commit": "21a9077d7cf32ee1c387171b943125e938eaa1b2",
      "tree": "b6dd67eabece8d2ad0f6667744c3cb44091b3e38",
      "parents": [
        "2d25c9290d163d682ae3958f0e09fede937c0f0f"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Fri Jul 03 11:54:38 2015 +1000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Mon Jul 06 23:17:15 2015 +0000"
      },
      "message": "Allow installing keystoneauth from git\n\nKeystoneauth is not marked as stable yet however to ensure that the\nintegration between it, keystoneclient and other services don\u0027t break\ncompatibility we want to test it with tempest.\n\nUnfortunately you can\u0027t put -e links in requirements.txt files so add\nit to devstack so we can set the test environment. This will also make\nit available when keystoneauth is released.\n\nChange-Id: I43ca1df9c6ae2f0ac1a687c9ce1e2ccb97e81652\n"
    },
    {
      "commit": "fee742ba723bfb843a58881cb415b4e7991981c1",
      "tree": "48c88ef656f97b8770f543b83576d470d6e6f9eb",
      "parents": [
        "17a16f3144f6d3ade315f04526b7ca479148c0b9",
        "3381e09f72e7edbf39080893212b533b8e01a3a9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 02 18:39:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 02 18:39:38 2015 +0000"
      },
      "message": "Merge \"Move Sahara into in-tree plugin\""
    },
    {
      "commit": "3381e09f72e7edbf39080893212b533b8e01a3a9",
      "tree": "cbf50f839776758eae779780965b960028b96fc4",
      "parents": [
        "85a1c488dfda0094238f899ea0bf693106021ce5"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Wed Jul 01 14:20:23 2015 +0300"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Wed Jul 01 16:09:56 2015 +0000"
      },
      "message": "Move Sahara into in-tree plugin\n\nOnce the Sahara related code moved to Sahara repo and used, we can\nremove Sahara specific code from Devstack.\n\nPartial-Implements: bp sahara-devstack-intree\n\nChange-Id: I34412b5cb2e86944b8555b8fd04b43556eb2bbe6\nDepends-on: I2e00b2ebc59dd3be6a0539dea2985f2e801a1bd7\nDepends-on: I07c3fede473030e8a110cbf5a08309f890905abf"
    },
    {
      "commit": "5c7f39fdcd29a74c402840021ca55f47c359fbf1",
      "tree": "b9ed77dd6dc798958a0b42a825afad226ebd7d7a",
      "parents": [
        "3a9df1dab73e2cb2f27dd014543ab16f22ac3846"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 01 06:29:27 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 01 06:29:27 2015 +1000"
      },
      "message": "Add worlddump unit test\n\nAdd a worlddump unit test to avoid simple breakages\n\nChange-Id: I6b87d4dbe22da2c1ca5ceb13134e9bb570f5cef2\n"
    },
    {
      "commit": "77a7d11dfa828468f27bce5456d11a9827473b20",
      "tree": "c2b1577e6194a65142c87a3eba86ac496036de8e",
      "parents": [
        "7bc1f3c15fbf92da5fe9e15bf66a2d6b6648e449"
      ],
      "author": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Mon Jun 22 16:44:13 2015 -0400"
      },
      "committer": {
        "name": "Davanum Srinivas (dims)",
        "email": "davanum@gmail.com",
        "time": "Tue Jun 30 18:43:56 2015 +0000"
      },
      "message": "Add new oslo libraries\n\nFull list for liberty is as follows:\n* oslo.service\n* oslo.reports\n* automaton\n* futurist\n\noslo.cache was already added in the earlier review\n\nSome of the entries are already there, though automaton was\nmissing in one spot. Made sure all references have all five\nlibraries.\n\nChange-Id: Iffb720d46058424924469695a3ae1e4f20655f99\n"
    },
    {
      "commit": "531017cf3e760dc1e9af25684465681277dec8d4",
      "tree": "5aab47c8ff60a79d5bb95b00f7d5015bc2e4d94c",
      "parents": [
        "e4d57d6bed88ec11ca7fcc8dc286a69d284c70aa"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sat Jun 27 03:37:39 2015 +0000"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sat Jun 27 15:10:51 2015 +0000"
      },
      "message": "Add oslo.cache to devstack\n\nas part of the graduation process, add oslo.cache to lib/oslo\nand stackrc.\n\nChange-Id: I2baf0384dd5d71d234a95b7acd0bfe5534f2732c\n"
    },
    {
      "commit": "18d1cca6cb1e56827e04c2f38c9db745b881f98a",
      "tree": "e93d4e09ecd337cc702309eac3d264b61cf741b0",
      "parents": [
        "810dc1d6f4b22eee04303e01968c1762a16986e0"
      ],
      "author": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Thu Jun 18 06:32:00 2015 -0400"
      },
      "committer": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Thu Jun 18 06:32:04 2015 -0400"
      },
      "message": "Add oslo.service to devstack\n\nAdd the ability to switch on oslo.service master using\nLIBS_FROM_GIT\n\nChange-Id: I00fe7776aea005b6d4e0a84fce54f33a862b57e3\n"
    },
    {
      "commit": "e3a640d57327955aba491366d6e69349813897a8",
      "tree": "97bc56f99ee863f98f7018b5c83e400db35a946d",
      "parents": [
        "96c6b2deb33e67c1657e37fdcc8c6ec904674ed6"
      ],
      "author": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Mon Jun 08 16:44:21 2015 -0700"
      },
      "committer": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Wed Jun 10 11:57:41 2015 -0700"
      },
      "message": "Add futurist to lib/oslo and stackrc\n\nPart of blueprint adopt-futurist\n\nChange-Id: I17e27a085c7c509bad6018016e90d0114543b073\n"
    },
    {
      "commit": "96c6b2deb33e67c1657e37fdcc8c6ec904674ed6",
      "tree": "a20ed9f2c9f1c86f3648a153d0e244f460e86042",
      "parents": [
        "dd4e468448cf4b30477f2ee4a8e14b97cb4756aa"
      ],
      "author": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Mon Jun 08 16:48:49 2015 -0700"
      },
      "committer": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Wed Jun 10 11:48:50 2015 -0700"
      },
      "message": "Add automaton to lib/oslo and stackrc\n\nPart of blueprint adopt-automaton\n\nChange-Id: I520643b74aced431f7a46b7d7b94616bb2e6bf8e\n"
    },
    {
      "commit": "10e1fd420dbebec2a5e546266edfc748b8684f9b",
      "tree": "b154beff1e426f6b6e53f4e13620b9ae60db3a5a",
      "parents": [
        "21b7e975fa3d1db3710b3d12d965f87828d9be84"
      ],
      "author": {
        "name": "Ramy Asselin",
        "email": "ramy.asselin@hp.com",
        "time": "Thu Jun 04 12:12:15 2015 -0700"
      },
      "committer": {
        "name": "Ramy Asselin",
        "email": "ramy.asselin@hp.com",
        "time": "Mon Jun 08 09:54:16 2015 -0700"
      },
      "message": "Allow override of os-brick library used by cinder\n\nos-brick code was pulled out of cinder and made into its own library\nhttps://review.openstack.org/#/c/155552/\n\nadded to requirements:\nhttps://review.openstack.org/#/c/177372/\n\nIntegration tests were added\nhttps://review.openstack.org/#/c/188156/\n\nBut they still use the version of os-brick from pip.\n\nThis change updates devstack to pull in the changes from\nos-brick patch sets instead, when configured to do so.\n\nNeeded-by: Id2bc10782847861fe4bb5e9e46245654450e38fd\n\nChange-Id: I5359dd37dfe94bd469d5ca35f9fbaeda61b5fac4\n"
    },
    {
      "commit": "dd363a182fb1f8472bc163c82ea5f48e8f8fd29e",
      "tree": "68c68729bd4d1a91dc37a7bb4e3cf8d45c2259a5",
      "parents": [
        "d986c59d6bd64c012cac3893a4b8bf75a84af4c5"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon May 25 11:50:32 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu May 28 10:40:55 2015 +1000"
      },
      "message": "Cleanup test_ip.sh to give more consistent output\n\nMinor changes to give more consistent output; no functional changes to\ntests.\n\nChange-Id: I6c4ef74587c59b786761735c7bd528f3d7f94905\n"
    },
    {
      "commit": "cfdb6fa940d947715e4b729b9e1e17ee8c6b14a8",
      "tree": "e45ce955250bcaf26665689d963873830ab7b351",
      "parents": [
        "3fa092bc1c3853905a9b2f99818b403aea59c20d",
        "d82d3f13401320ec47757aff0457a307203b28fe"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 27 15:43:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed May 27 15:43:26 2015 +0000"
      },
      "message": "Merge \"Add test case to \u0027cidr2netmask\u0027\""
    },
    {
      "commit": "3fa092bc1c3853905a9b2f99818b403aea59c20d",
      "tree": "6ee0e8a8b2afc61b133ff566136282c238f14421",
      "parents": [
        "11e17174beb1bc4fbcf3122d33e7dd5a406ee09c",
        "165afa2377ee8eb6bad1b6cfb454a7de525a4498"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 27 15:43:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed May 27 15:43:21 2015 +0000"
      },
      "message": "Merge \"Fix msg argument to assert_equal\""
    },
    {
      "commit": "d82d3f13401320ec47757aff0457a307203b28fe",
      "tree": "742707fa09b316ff3f66a08c8e1f2c5e99210ad1",
      "parents": [
        "165afa2377ee8eb6bad1b6cfb454a7de525a4498"
      ],
      "author": {
        "name": "Mahito",
        "email": "m.ogura@ntt.com",
        "time": "Fri May 22 10:37:23 2015 -0700"
      },
      "committer": {
        "name": "Mahito OGURA",
        "email": "m.ogura@ntt.com",
        "time": "Tue May 26 15:33:32 2015 +0900"
      },
      "message": "Add test case to \u0027cidr2netmask\u0027\n\n\u0027cidr2netmask\u0027 of function doesn\u0027t have enough test case\nand test code isn\u0027t smart.\nThis patch adds test case and refactors test code.\n\nChange-Id: Iab20ef06fe78316a78198ab75c0afe738a577dd6\nCloses-bug: #1457989\n"
    },
    {
      "commit": "8606c98c53722f425525fa06eee554b7d30f62f6",
      "tree": "73964254155c511d023dc7315ca80126fa0d549a",
      "parents": [
        "cf56d4e35ca3f5fd406068e757c9e82a7e2c6d61"
      ],
      "author": {
        "name": "fumihiko kakuma",
        "email": "kakuma@valinux.co.jp",
        "time": "Mon Apr 13 09:55:06 2015 +0900"
      },
      "committer": {
        "name": "fumihiko kakuma",
        "email": "kakuma@valinux.co.jp",
        "time": "Tue May 26 12:38:35 2015 +0900"
      },
      "message": "Fix remove_disabled_extensions to remove an extension at the last position\n\nremove_disabled_extensions do matching by \u0027$ext_to_remove\",\"\u0027. So it doesn\u0027t\nmatch an extension at the last position in extensions_list.\nThis patch fixes that.\n\nCloses-Bug: #1443254\nChange-Id: I194b483de797697ba06b320cf33f1bac67fc0cc7\n"
    },
    {
      "commit": "165afa2377ee8eb6bad1b6cfb454a7de525a4498",
      "tree": "701ada8d5f91abe306a842036ed55117d1da690d",
      "parents": [
        "cf56d4e35ca3f5fd406068e757c9e82a7e2c6d61"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon May 25 11:29:48 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon May 25 11:29:48 2015 +1000"
      },
      "message": "Fix msg argument to assert_equal\n\nI noticed this was taking an argument but not dealing with it.  In\ngeneral the functions were undocumented, so I added some terse usage.\n\nAlso, the intent of the test-case was to expand the values before\nusing them as the message; make sure this happens by using a temp\nvariable.\n\nChange-Id: Ib317ad1e9dd2a5d2232b9c64541fe4a601a2b8da\n"
    },
    {
      "commit": "9e220b9b2b560b160c93058b255b3d69e49c0cbc",
      "tree": "c1506e67b15f9cf4a1297c01e36d62704b672725",
      "parents": [
        "bf5de0aee48cd756fcc8e792f2014054c5f5294a"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@hp.com",
        "time": "Tue Mar 24 16:32:03 2015 -0700"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@hp.com",
        "time": "Thu May 14 07:57:23 2015 -0700"
      },
      "message": "Move trove into in-tree plugin\n\nOnce the trove code is copied into the trove repo and it is used\nas a devstack-plugin, we can remove trove-specific code from\ndevstack.\n\nChange-Id: I8f9f1a015edb7ec1033e2eaf0b29ab15d89384ce\nDepends-On: I3506dec0e6097f9c2e9267110fdfb768faa23c85\n"
    },
    {
      "commit": "98f59aafaf88328f6aee98efa0f563fb8bf91ebd",
      "tree": "26a9c539ec10a34dfc67a1c299c4c8c4f4cf01f5",
      "parents": [
        "e3fcc54b9ba99577d9d74d175b86974aab208514"
      ],
      "author": {
        "name": "Mahito OGURA",
        "email": "earthdragon77@gmail.com",
        "time": "Mon May 11 18:02:34 2015 +0900"
      },
      "committer": {
        "name": "Mahito OGURA",
        "email": "earthdragon77@gmail.com",
        "time": "Mon May 11 18:23:07 2015 +0900"
      },
      "message": "Fix function and test for \u0027trueorfalse\u0027.\n\nThe function\u0027s comment is written as follow, however the function accepts\nother values (ex. \"e\", \"t\", \"T\", \"f\", \"F\", etc...).\n\n---\nAccepts as False: 0 no No NO false False FALSE\nAccepts as True: 1 yes Yes YES true True TRUE\n---\n\nMoreover if testval mach True or False, the function exits without resetting\nxtrace.\n\nThis patch fixes the issue and add test patterns.\n\nChange-Id: Ie48a859476faff22a4dfef466516e2d7d62ef0c0\nCloses-bug: #1453687\n"
    },
    {
      "commit": "641dd9ff23058e511d6bf126b0078448bcb672e5",
      "tree": "d6c40fd4566b9376b11d7bb6bd88c51068776458",
      "parents": [
        "5ed2ba896f81fdf76bad852c083fbd112afc7ee6",
        "2796a82ab48107d4445c03938e037e60dd1bbfa9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu May 07 02:48:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu May 07 02:48:20 2015 +0000"
      },
      "message": "Merge \"Fix negated services with common prefix\""
    },
    {
      "commit": "7efba991f78667c19d13431524c95f77660781c5",
      "tree": "6cb32982a60b0502eb891ef579aa8c8408b16649",
      "parents": [
        "c9197f6c72039b6029dbe3858b78373d7f3aa96d"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 28 13:15:22 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 28 13:15:22 2015 -0400"
      },
      "message": "don\u0027t source openrc\n\nThere is actually no reason why we need openrc for these tests, don\u0027t\nsource it as it prevents some ip math errors from randomly killing\ntests.\n\nChange-Id: Iface7c21898d92e14e840379938b25844cd85565\n"
    },
    {
      "commit": "2796a82ab48107d4445c03938e037e60dd1bbfa9",
      "tree": "532f550099737815e928cfe5e19e04e0ee62c85b",
      "parents": [
        "cd7655cbfcc119e5dafe308ce31e54d3e28b3b63"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Apr 15 08:59:04 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Apr 23 15:10:25 2015 +1000"
      },
      "message": "Fix negated services with common prefix\n\nThe current sed matching mixes up common-prefix matching;\ne.g. \"-q-lbaas,q-lbaasv2\" is changed into just \"v2\"\n\nThis is more verbose, but I think more reliable.  See also\nIb50f782824f89ae4eb9787f11d42416704babd90.\n\nChange-Id: I3faad0841834e24acc811c05015625cf7f848b19\n"
    },
    {
      "commit": "fa3e8412864a92715c296c6ed5e3828dd4bb2205",
      "tree": "5c7c78afbd70df860a8fd6d8b07b62e7e2ba8846",
      "parents": [
        "9b64bbf06eab19534e58a1b7af1757e427e6b3b6"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 11:53:40 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Create config file in merge_config_file\n\nChange If132a94e53545d9134859aa508da7b9819ede2f8 introduced a small\nregression; it added an \"inidelete\" which looks in the config file to\ndelete rows.\n\nHowever, at least for the test-case, the config file isn\u0027t created\nyet.  The end result is that the test fails but we don\u0027t notice.\n\n 2015-04-17 00:55:03.169 | merge_config_file test-multiline: sed: can\u0027t read test-multiline.conf: No such file or directory\n 2015-04-17 00:55:03.195 | OK\n\nSo fix this up by creating the config-file if it isn\u0027t there.\n\nAlso, add \"-e\" to the test file so we catch things like this in the\nfuture.\n\nChange-Id: I43a4ecc247f19cccf51d5931dfb687adbd23d6b1\n"
    },
    {
      "commit": "09f4ad227976eb95d70045b67d0f724294cf7e22",
      "tree": "6291939cda6347ad88bb363679253810616f4214",
      "parents": [
        "9b845da478ae2fb65ac63de95f6005ecacbb52ce"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:13:04 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Convert test_functions.sh to use unittest helpers\n\nThis currently does not exit with any failure code when tests are\nfailing.  Convert it to use the helper functions from unittest.sh so\nit correctly reports failures.\n\nChange-Id: I2062d9c00ebffcc98ba75a12f480e4dd728ee080\n"
    },
    {
      "commit": "9b845da478ae2fb65ac63de95f6005ecacbb52ce",
      "tree": "d7910cf08ed08a08ff7548ea6467ad7a09b09d43",
      "parents": [
        "9b0ebc44f413edac87e52d23e8852ca7c52cb091"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:10:33 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Fix die_if_not_set tests\n\nThe \"die_if_not_set\" test has the LINENO as a positional argument.\nThe existing tests are not passing this in, so they are failing.\n\nAlong with this, remove the \"-x\" from the invocation and hide the\noutput of the tests that are expected to fail to avoid confusion.\n\nChange-Id: Ibf6b9d7bb72b9f92831e1a90292ff8b0bec7faea\n"
    },
    {
      "commit": "9b0ebc44f413edac87e52d23e8852ca7c52cb091",
      "tree": "54e0ddbbebfa125d4397f6923e8e0acc55a3f8bf",
      "parents": [
        "fcdca05de55b9ecec2b66f0cccb88ee01beebbd0"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:06:47 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Move function.sh to test_functions.sh\n\nrun_tests.sh runs tests starting with test_*\n\nThe existing test_functions.sh is really testing true/false.  Move\nthat to test_truefalse.sh\n\nThen move functions.sh to test_functions.sh.  This will ensure it is\nrun during unit testing from run-tests.sh\n\nChange-Id: I959ac38c946da1fb47458b8c4f09157f74f0e644\n"
    },
    {
      "commit": "fcdca05de55b9ecec2b66f0cccb88ee01beebbd0",
      "tree": "c15c2aa2d950b0729127096a891aa986ae850fb6",
      "parents": [
        "f56348bcb2c736b9e66ebfe20c1f118cfc96b9f6"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:02:49 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Fix return of test_ini_config \u0026 test_meta_config\n\nConvert test_ini_config to use the \"passed / failed\" functions in\nunittest.sh.  test_meta_config wraps everything into a function; it\u0027s\nnot work unrolling this so just make sure it exits with non-zero if a\ntest fails.\n\nChange-Id: I9e9883fdad42358255383eede9121b1d361799c8\n"
    },
    {
      "commit": "f56348bcb2c736b9e66ebfe20c1f118cfc96b9f6",
      "tree": "bfe97606b919e4f1c89dbc4c1d4871cfdb031266",
      "parents": [
        "1cb809d8ef81931ea0b1f15619b7e830281f2556"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 12:58:56 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Use unittest help in test_ip.sh\n\nUse the unittest helper to track test runs and correctly exit with a\nfailure code if there is a problem\n\nChange-Id: Ie62f354a8cd3b8fd5986e6943a073f7955fb55ba\n"
    },
    {
      "commit": "1cb809d8ef81931ea0b1f15619b7e830281f2556",
      "tree": "d962b2f92bbaa538847e3ebde65f7177004612c5",
      "parents": [
        "6f2d9b1f7d08aaa01acbe29fcfa596080470e093"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 12:55:38 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:20 2015 +1000"
      },
      "message": "Add \"passed\" and \"failed\" functions\n\nAdd two generic \"passed\" and \"failed\" functions to the unittest\nhelper.  Also keep a count of passed and failed tests.  Later changes\nwill use these functions to ensure they exit with a correct return\ncode.\n\nChange-Id: I8574dcb1447b04fcda3d72df0bf8605cf7488d3c\n"
    },
    {
      "commit": "1bd79596c3c5f62cbbef92558156401447a9b5d3",
      "tree": "3498da8181326cc9421975135d9123268339f974",
      "parents": [
        "4cc060e77c58882f9728c2515e65d205d0e969dd"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Tue Feb 24 14:06:56 2015 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Thu Mar 26 14:00:02 2015 +0100"
      },
      "message": "Move back isset to the functions-common\n\nisset function was moved to config file related functions by accident,\nthis change also simplfies the isset in a bash \u003e\u003d4.2 way.\n\nAll supported distro has at least bash 4.2. (RHEL6 used 4.1)\n\nChange-Id: Id644b46ff9cdbe18cde46e96aa72764e1c8653ac\n"
    },
    {
      "commit": "bf2ad7015d068f9a85c01813cea0aa79143b1d0f",
      "tree": "ab1a91e8e13a882ee4dab1a70141c31133a5815b",
      "parents": [
        "924079b8905669a646cfa328d6bf52e56b79acdc"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Mar 09 15:16:10 2015 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Mar 09 22:52:19 2015 -0500"
      },
      "message": "Move configuration functions into inc/*\n\n* config/INI functions from functions-common to to inc/ini-config\n* local.conf meta-config functions from lib/config to inc/meta-config\n\nChange-Id: I00fab724075a693529273878875cfd292d00b18a\n"
    },
    {
      "commit": "aca8a7fd991484a59fc20aadc3cedb339fc55ca5",
      "tree": "d6097ff70df28eb96d5afa2f36f034001d94536c",
      "parents": [
        "aff8fb9be8b48d6f05f4e00561f714346befc846"
      ],
      "author": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Tue Mar 03 08:50:27 2015 -0800"
      },
      "committer": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Tue Mar 03 08:50:27 2015 -0800"
      },
      "message": "Add support for oslo.versionedobjects\n\nChange-Id: I01dba39259a3b264d4ec2b21db8429d340751979\n"
    }
  ],
  "next": "ee9064b76293ec8838f7a3a52ed1de45056f6201"
}
