)]}'
{
  "log": [
    {
      "commit": "38245da0b8ab1a08ae192ef2c0d5755a8f88841a",
      "tree": "8e0ace15b5cce2c00c22d158d6bb189ba15d35fe",
      "parents": [
        "bc4b96b79425c8485929b8dd5c4e138a395099a3"
      ],
      "author": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Thu May 26 17:55:14 2016 -0400"
      },
      "committer": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Thu May 26 17:55:14 2016 -0400"
      },
      "message": "Fix typo in local variable name in time_stop\n\nThis didn\u0027t break functionality but it would use a global instead\nof a local variable so nested calls to time_* might have issues.\n\nChange-Id: If61ef07c4ce15f1a356975a0b0611fdf5e49109a\n"
    },
    {
      "commit": "247e44625cdd3b4bf251dabfeca0ca241d9109a8",
      "tree": "caf537e220e01258eecb87013e2a9def65716672",
      "parents": [
        "730703a83335d9d9704023ba17a241d3d506f1a4"
      ],
      "author": {
        "name": "Kashyap Chamarthy",
        "email": "kchamart@redhat.com",
        "time": "Fri May 20 13:34:41 2016 +0200"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue May 24 11:21:01 2016 -0400"
      },
      "message": "functions-common: Use `systemctl` when applicable\n\nWe live in a new systemd world, use the native commands to talk to it\nif available.\n\nChange-Id: Iccdc35f0c9da2997f9e672bc1d24ca15d3403d98\n"
    },
    {
      "commit": "1df67b9dd8433a37e21b8924c8fb2c55f69a1b4b",
      "tree": "b61d94cab875146fc77f91c156ca4a28fc12ebe6",
      "parents": [
        "a3715a2e1ac8dfcddf47302e147982a0bb726b76",
        "1da4e790eb26d1333d57c7673ba491ca9b6dbde8"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri May 20 13:46:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri May 20 13:46:35 2016 +0000"
      },
      "message": "Merge \"Added RHEL rebuild ScientificLinux to supported distributions\""
    },
    {
      "commit": "7b3ae5332813c79b734c99fbba3ab876224aa73c",
      "tree": "d25c82f88912aa9e4f09fb0cf8d66ad40c923c40",
      "parents": [
        "ae4578bed986ebaaf3e09e1ecc9d4d7ae9f022ab"
      ],
      "author": {
        "name": "John Kasperski",
        "email": "jckasper@us.ibm.com",
        "time": "Sun Apr 24 22:56:04 2016 -0500"
      },
      "committer": {
        "name": "John Kasperski",
        "email": "jckasper@us.ibm.com",
        "time": "Wed Apr 27 12:13:16 2016 -0500"
      },
      "message": "Update is_service_enabled\n\nThe nova check in is_service_enabled() is loading the nova repo\nwhen ENABLED_SERVICES\u003dovn-northd.  Add a comma before each of the\nchecks to prevent this error with any of the other services.\n\nChange-Id: I9deee735812cde44ea5140b1ad76848f02576609\nCloses-Bug: #1574431\n"
    },
    {
      "commit": "1da4e790eb26d1333d57c7673ba491ca9b6dbde8",
      "tree": "f9aef3b96f075a82583c835a155bdf0cf804ae8d",
      "parents": [
        "96ffde28b6e2f55f95997464aec47ae2c6cf91d3"
      ],
      "author": {
        "name": "Mike Trimm",
        "email": "mitrimm@cisco.com",
        "time": "Wed Apr 27 11:40:19 2016 -0500"
      },
      "committer": {
        "name": "Mike Trimm",
        "email": "mitrimm@cisco.com",
        "time": "Wed Apr 27 11:40:25 2016 -0500"
      },
      "message": "Added RHEL rebuild ScientificLinux to supported distributions\n\nChange-Id: I8b3844bf28b11254e7cc9a96126bd66efbd1212e\n"
    },
    {
      "commit": "ae4578bed986ebaaf3e09e1ecc9d4d7ae9f022ab",
      "tree": "5923cce20d0850f32dec2cfaade146da72bad0e6",
      "parents": [
        "7d1ec430046256ac3f536f4920a43936e28ef0c4"
      ],
      "author": {
        "name": "Matt Riedemann",
        "email": "mriedem@us.ibm.com",
        "time": "Sat Apr 23 01:45:40 2016 +0000"
      },
      "committer": {
        "name": "Matt Riedemann",
        "email": "mriedem@us.ibm.com",
        "time": "Sat Apr 23 01:45:40 2016 +0000"
      },
      "message": "Revert \"Don\u0027t check for existing endpoints\"\n\nThis reverts commit 7d1ec430046256ac3f536f4920a43936e28ef0c4.\n\nThis broke the sahara and layer4 dsvm jobs. The layer4 job\nis voting on tempest changes so tempest is also broken.\n\nChange-Id: Ide69f10cd85bf7ff0d86bc8cba56dedd26850362\nPartial-Bug: #1573868\n"
    },
    {
      "commit": "7d1ec430046256ac3f536f4920a43936e28ef0c4",
      "tree": "bebc4c9bcc03a253c62b5958dbacb8a94035b836",
      "parents": [
        "54f331969f86d364fd62235e54a4419bdbbd8f00"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Apr 22 09:19:10 2016 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Apr 22 10:44:10 2016 -0400"
      },
      "message": "Don\u0027t check for existing endpoints\n\nWe really should only have code that create endpoints once, making all\nosc calls get_or_set adds 3 seconds per call for no really good\nreason.\n\nThis also stops creating the internal endpoints in the service\ncatalog. It\u0027s a pattern that we\u0027re trying not to propogate, so lets\nnot have it in devstack any more.\n\nChange-Id: Ia8cefe43753900d62117beae330db46deb6a9fc9\n"
    },
    {
      "commit": "54f331969f86d364fd62235e54a4419bdbbd8f00",
      "tree": "5923cce20d0850f32dec2cfaade146da72bad0e6",
      "parents": [
        "d57d52be4887004848b333ddc7f252e982c39361",
        "0b4a009e56d29e4fe51ae06132c5766d0da9be7d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Apr 21 20:01:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Apr 21 20:01:54 2016 +0000"
      },
      "message": "Merge \"remove clouds.yaml in clean.sh\""
    },
    {
      "commit": "cbcbd8f33c87904b2293e68ec9868be0b6e4393e",
      "tree": "1db9c7c8e519fd2c5991730a2ac47858b49be9b3",
      "parents": [
        "3d0981398a898b7ed5d4cbac4121b22963ffb32f"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@gmail.com",
        "time": "Thu Jan 21 16:08:14 2016 -0600"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@gmail.com",
        "time": "Mon Apr 18 09:59:52 2016 +1000"
      },
      "message": "Allow putting service users in a seperate domain\n\nMake it possible to construct the service users in their own seperate\ndomain. Changing this away from Default will not work for everyone yet,\nthough it does work for basic service interaction however enabling it\nwill allow us to start testing and hopefully gating that services aren\u0027t\nrelying on v2 only concepts.\n\nChange-Id: I7e73df5dd1caabf355783da2bc0f3007ade92fba\n"
    },
    {
      "commit": "0b4a009e56d29e4fe51ae06132c5766d0da9be7d",
      "tree": "f4f2b4370db3fd0c85765ddb643beee1844f98c0",
      "parents": [
        "a344608ca9c5a61bad60a478fe1bbb60ecc60681"
      ],
      "author": {
        "name": "ZhiQiang Fan",
        "email": "aji.zqfan@gmail.com",
        "time": "Tue Apr 12 20:26:33 2016 +0800"
      },
      "committer": {
        "name": "ZhiQiang Fan",
        "email": "aji.zqfan@gmail.com",
        "time": "Fri Apr 15 02:27:35 2016 +0800"
      },
      "message": "remove clouds.yaml in clean.sh\n\ndevstack failed to install because glance:\nCould not determine a suitable URL for the plugin\n\npatch I618ea8e27b49af360c905df85af06d9b1eef8407 tries\nto fix this problem, but with a wrong way because path is not\ncorrect, the clouds.yaml is not under /path/to/devstack/~/.config/openstack/\nbut ~/.config/openstack.\n\npatch I8af6bd465f74099c560dddba6b5221dd79cbc965 tries to\nfix this problem, but with a worng way to specify the path,\n~$STACK_USER/.config/openstack/clouds.yaml will not expand with\na variable, only const string can.\n\n$ whoami\nzqfan\n$ touch ~/.config/openstack/clouds.yaml\n$ export STACK_USER\u003dzqfan\n$ rm -rf ~$STACK_USER/.config/openstack/clouds.yaml\n$ ls ~/.config/openstack/\nclouds.yaml\n\nChange-Id: I549817d2f4638be615991c1726b39d270ba71357\nref: I618ea8e27b49af360c905df85af06d9b1eef8407\n"
    },
    {
      "commit": "4e6f8ca67047aef99ff1573bddc21b18aae1ce0b",
      "tree": "6d35f0f2794c58f4327492cc1f361240d306006b",
      "parents": [
        "9ce61fbd441c80b9833e802184aba75fbbb07866"
      ],
      "author": {
        "name": "Fernando Ribeiro",
        "email": "fernando.ribeiro@oracle.com",
        "time": "Tue Apr 12 23:34:03 2016 -0300"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Apr 14 07:14:04 2016 +1000"
      },
      "message": "Add installation support for Oracle Linux 7\n\nThis removes Oracle Linux 6 support (\"OracleLinux\") which, like RHEL6,\nis now unsupported.  \"OracleServer\" matches Oracle Linux 7.\n\nChange-Id: I35b1c7d0b103c509283dba0f6551453e7d8ac4cc\nCloses-Bug: #1568634\n"
    },
    {
      "commit": "908a3a952300ae5ff8a00392ee2b5577ea5c6e7d",
      "tree": "85b5fd747cc00b7535f975f25b7d980fae7930a1",
      "parents": [
        "8b416ae821d8487f22d3d564c30da44d6cb2826a"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Mar 29 14:47:09 2016 +1100"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Mar 30 19:49:13 2016 +0000"
      },
      "message": "Add total timings\n\nPrinting the total makes it easier to compare runs at a glance.  Clean\nup the output a little, and use some consistent, name-spaced globals\nwhile we\u0027re there.\n\nNote the total runtime is at the top to avoid giving the impression\nthat it is the sum of the components below, since you can nest/overlap\ntimers (I made that mistake in a prior change :).  It might be a fun\nexercise in tree building to one day track the overlaps and present a\nnice nested breakdown.\n\nChange-Id: I878ce03813d21138df493b82bceff3aaa7f83064\n"
    },
    {
      "commit": "467dbf7703076803f14bca2e67a7125df83122ec",
      "tree": "1593fa0b0cba5e836e23f6196ae66eddc331502b",
      "parents": [
        "a4d67cd0337dd1002670189647a35c9f3520aadf",
        "78d3739dbec518bc81e635d5a9c19eb68530454c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 18 20:23:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 18 20:23:53 2016 +0000"
      },
      "message": "Merge \"Fix RHEL7 vendor detection\""
    },
    {
      "commit": "a4d67cd0337dd1002670189647a35c9f3520aadf",
      "tree": "b4305117c5790c26f89cc5e511cbf5929686ea4b",
      "parents": [
        "1dd875d48ea139e094442c00689a70c97488f270",
        "1b1cc8c1d491b1469c7082d28d3e4a3a8a4a4fd9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 18 20:22:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 18 20:22:59 2016 +0000"
      },
      "message": "Merge \"yum_install_package: fix errexit and retry\""
    },
    {
      "commit": "78d3739dbec518bc81e635d5a9c19eb68530454c",
      "tree": "07ceebd8d4bf784098bd3bbb88f83c9bacb9a470",
      "parents": [
        "04ed38b5d77276578f95184a9a9d009b12b57d43"
      ],
      "author": {
        "name": "tengqm",
        "email": "tengqim@cn.ibm.com",
        "time": "Tue Mar 15 23:08:00 2016 -0400"
      },
      "committer": {
        "name": "tengqm",
        "email": "tengqim@cn.ibm.com",
        "time": "Tue Mar 15 23:08:00 2016 -0400"
      },
      "message": "Fix RHEL7 vendor detection\n\nWhen detecting os_VENDOR, the lsb_release output may be different\nfrom what is expected today. This patch fixes the detection.\n\nChange-Id: I850ad1acbc2397c73e7cc85c1765cba6ba2f98d4\n"
    },
    {
      "commit": "082399ef18106bc3820848b6fc352604f0fcf97a",
      "tree": "81dbd2e96b75f9471f5f314134f5198b1c3fac37",
      "parents": [
        "3bee719ece55febaa70a7f57348c32af44739dbf",
        "9ba49cd82631ada84b8458b370ac535985d57725"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Mar 14 18:55:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Mar 14 18:55:23 2016 +0000"
      },
      "message": "Merge \"Remove rejoin-stack.sh\""
    },
    {
      "commit": "fa3cc77aeedbb94830e0384793765ce7ed6fe5b2",
      "tree": "d67f179e7b77f0874d933becc05dd8793a3643ee",
      "parents": [
        "73af0de40c953f813a10a90cb6b0d22cbefb48f7",
        "dab3901d9aa9d4485495d066c58a3e82c76e2261"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 11 00:55:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 11 00:55:25 2016 +0000"
      },
      "message": "Merge \"Use \"command -v\" instead of \"which\" to find path\""
    },
    {
      "commit": "73af0de40c953f813a10a90cb6b0d22cbefb48f7",
      "tree": "85284112b2203efe21947df4ca0623bce51fbba0",
      "parents": [
        "b57ec243c9c358b7b4dea15c323d8f323124b9c3",
        "c15d59157c4aab0147ab5d388642c6c08cae875a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 11 00:55:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 11 00:55:17 2016 +0000"
      },
      "message": "Merge \"Ignore errors when uninstalling a pkg with zypper\""
    },
    {
      "commit": "b57ec243c9c358b7b4dea15c323d8f323124b9c3",
      "tree": "479f9820ba9be7a60977fd87e6c97a2b7ea4ac28",
      "parents": [
        "b08914ade7392aaf78f81e83839f387eb731e840",
        "3c60168532b9202baa6d163d3501d8323239eb5b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 11 00:55:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 11 00:55:08 2016 +0000"
      },
      "message": "Merge \"Also detected failed packages in dnf/yum wrapper\""
    },
    {
      "commit": "9ba49cd82631ada84b8458b370ac535985d57725",
      "tree": "a1a2120293da6cc423df8442ce281827073b507f",
      "parents": [
        "0aea130107728ade1d525ecbed8039732836c85c"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Mar 10 15:45:40 2016 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Mar 10 15:48:13 2016 -0600"
      },
      "message": "Remove rejoin-stack.sh\n\nThis command has never completely worked to restart DevStack.\nIt periodically prompts attempts to work around this brokenness\nin ways that harm other functions.  Let\u0027s finally remove it.\n\nRequiring a complete re-run of DevStack after a reboot has always\nbeen intentional.\n\nTODO: follow-up cleaning all of the screen hackage if this merges.\n\nChange-Id: I2f61bb69cc110468a91dcaa4ee7653ede7048467\n"
    },
    {
      "commit": "61ba1b3353259ed059cdbdf39b89c6c7c8f7ca97",
      "tree": "c90257a0a3a9de267289242c08fc735434fce8cb",
      "parents": [
        "e15b07265d74dbc30371e19dd42c1d6ff36c6d0e",
        "ed92e43178b4f910adc038d1b0b6788e21513f32"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Mar 07 14:30:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Mar 07 14:30:31 2016 +0000"
      },
      "message": "Merge \"Add some notes on DISTRO setting\""
    },
    {
      "commit": "c72f8d318f1c204c74fb35e0d70d1b594a1649be",
      "tree": "032b858feb4e98e70c283c729c15f13677a7eb0a",
      "parents": [
        "3fc4472be47edd2f8a0750ed4b6afc8584d0ae25",
        "718512c4d247682372b7e159c6adfb1514ab25b8"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Mar 07 14:09:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Mar 07 14:09:03 2016 +0000"
      },
      "message": "Merge \"Introduce Virtuozzo distribution\""
    },
    {
      "commit": "c15d59157c4aab0147ab5d388642c6c08cae875a",
      "tree": "a671b08add33eedc1fdc641d6a4a80e34cc4d87b",
      "parents": [
        "147a3647fe5595988fefaa1647153f0cb4fe2c39"
      ],
      "author": {
        "name": "Thomas Bechtold",
        "email": "tbechtold@suse.com",
        "time": "Fri Mar 04 16:06:24 2016 +0100"
      },
      "committer": {
        "name": "Thomas Bechtold",
        "email": "tbechtold@suse.com",
        "time": "Fri Mar 04 16:06:24 2016 +0100"
      },
      "message": "Ignore errors when uninstalling a pkg with zypper\n\nI.e. when trying to uninstall python-pip and it\u0027s not installed,\ndon\u0027t exit.\n\nChange-Id: I21ac715a0090ad01811af47f23c61823dfa65629\n"
    },
    {
      "commit": "dab3901d9aa9d4485495d066c58a3e82c76e2261",
      "tree": "ff0fdc2979a9fbf34d1d97db1a15fcfd04967ab1",
      "parents": [
        "899dfeef466914c6695e6f3baa1c6576e784da8f"
      ],
      "author": {
        "name": "Thomas Bechtold",
        "email": "tbechtold@suse.com",
        "time": "Thu Mar 03 12:11:15 2016 +0100"
      },
      "committer": {
        "name": "Thomas Bechtold",
        "email": "tbechtold@suse.com",
        "time": "Fri Mar 04 09:14:04 2016 +0100"
      },
      "message": "Use \"command -v\" instead of \"which\" to find path\n\nIf /usr/bin/which is not available, the current code\ndoesn\u0027t detect i.e. /usr/bin/zypper . Using \"command -v\" solved\nthe problem.\n\nChange-Id: I1c281c3184d69cd9dc2418295b6a392d8e5693e0\n"
    },
    {
      "commit": "ba71f0ead77fc7ecb75cada324b0ebc5b736e9a6",
      "tree": "0ffae32f2ae59ee3a5a2cdca592f7883ac58f3e1",
      "parents": [
        "b4758cb5ff9342830de5da5147f67b9f89a18c31",
        "37dddb73fd17308fa3fbb127f6e49c1bb06f89e7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 04 01:48:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 04 01:48:10 2016 +0000"
      },
      "message": "Merge \"Fix is_suse() check for openSUSE distros\""
    },
    {
      "commit": "718512c4d247682372b7e159c6adfb1514ab25b8",
      "tree": "ee0e6991c306e34000a2ff9c817a1dab13e6f58d",
      "parents": [
        "92116ecd669f917ded44f84719938e0205fab2d6"
      ],
      "author": {
        "name": "Evgeny Antyshev",
        "email": "eantyshev@virtuozzo.com",
        "time": "Thu Mar 03 14:47:58 2016 +0000"
      },
      "committer": {
        "name": "Evgeny Antyshev",
        "email": "eantyshev@virtuozzo.com",
        "time": "Thu Mar 03 14:56:59 2016 +0000"
      },
      "message": "Introduce Virtuozzo distribution\n\nVirtuozzo is a RHEL-based distribution serving as a platform OS\nto host proprietary container virtualization\n(formerly, Parallels Cloud Server).\n\nWe moved away from CloudLinux distribution, which has actually\nno support in Devstack (no such clause in is_fedora).\nAs it was us who introduced CloudLinux, by this patch\nwe replace it with Virtuozzo distribution.\n\nMore info on Virtuozzo company here: http://virtuozzo.com\n\nChange-Id: Ib8a77e4611ebc05bc0aa50bb83ab79c412e21c74\n"
    },
    {
      "commit": "899dfeef466914c6695e6f3baa1c6576e784da8f",
      "tree": "d3eb4a4ba58a7097b605cb503ab2cc690bc1a32e",
      "parents": [
        "925e2d9dede8b7e1ab0ca31d1dffc2f882b4cc52"
      ],
      "author": {
        "name": "Thomas Bechtold",
        "email": "tbechtold@suse.com",
        "time": "Thu Mar 03 11:27:53 2016 +0100"
      },
      "committer": {
        "name": "Thomas Bechtold",
        "email": "tbechtold@suse.com",
        "time": "Thu Mar 03 11:27:53 2016 +0100"
      },
      "message": "Fix lsb installation for SUSE\n\nzypper has a \"-n\" (non-interactive) switch. \"-y\" is not known\nas a global option.\n\nChange-Id: I6537529e91c12c5f0d15a9faa2cca8aedaf7d956\n"
    },
    {
      "commit": "37dddb73fd17308fa3fbb127f6e49c1bb06f89e7",
      "tree": "36601376c237ff589475cbb35c355cb8814285b2",
      "parents": [
        "925e2d9dede8b7e1ab0ca31d1dffc2f882b4cc52"
      ],
      "author": {
        "name": "Ralf Haferkamp",
        "email": "rhafer@suse.de",
        "time": "Wed Mar 02 15:25:57 2016 +0100"
      },
      "committer": {
        "name": "Ralf Haferkamp",
        "email": "rhafer@suse.de",
        "time": "Wed Mar 02 15:34:06 2016 +0100"
      },
      "message": "Fix is_suse() check for openSUSE distros\n\nWe need to do a substring match on the vendor here. As most releases return\n\"openSUSE project\" for the vendor.\n\nChange-Id: Ia05db8d93b5e3f42cb6a9c8d77616ca9f7c32039\n"
    },
    {
      "commit": "1b1cc8c1d491b1469c7082d28d3e4a3a8a4a4fd9",
      "tree": "85ceb0b9ed3d55b39320eab42c3f0dbfcce4f93e",
      "parents": [
        "3c60168532b9202baa6d163d3501d8323239eb5b"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Mar 01 13:14:39 2016 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Mar 01 13:14:39 2016 +1100"
      },
      "message": "yum_install_package: fix errexit and retry\n\nSince I93e9f312a94aeb086925e069a83ec1d3d3419423 yum_install isn\u0027t safe\nunder errexit.  This means it really only works when called by\ntools/install_prereqs.sh because for some reason, we don\u0027t set that\nthere.\n\nHowever, there is a problem with the retry logic when detecting failed\ninstalls.  A failed package install should stop further progress, but\nwith the current retry logic it just goes ahead and retries the\ninstallation, which then incorrectly passes.  You can see this\nhappening in a test like [1].\n\nIn our detection scripts, make a failed package or missing packages\nexit with error-code 2, and \"die\" when we see this to correctly stop.\n\n[1] http://logs.openstack.org/81/285881/1/check/gate-tempest-dsvm-platform-fedora23-nv/a83be30/logs/devstacklog.txt.gz\n\nChange-Id: I4ea5515fa8e82a66aefa3ec3a48b823b645274f7\n"
    },
    {
      "commit": "3c60168532b9202baa6d163d3501d8323239eb5b",
      "tree": "8bade1f0ac01bd4e2e345bab979ac071e44b3e16",
      "parents": [
        "80ea24cbbb98fd6bdc5dff2fa4bbfc074a1b38b5"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Feb 29 15:15:39 2016 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Feb 29 15:15:39 2016 +1100"
      },
      "message": "Also detected failed packages in dnf/yum wrapper\n\nAs seen in [1]; dnf can output a \"Failed:\" section when installation\nissues with a package are detected.  This does not, however, trigger\nan exit failure code when running with \"-y\".  So add this to our\nchecking wrapper.\n\n[1] http://logs.openstack.org/49/280449/1/check/gate-tempest-dsvm-platform-fedora23-nv/dc70ca8/logs/devstacklog.txt.gz#_2016-02-28_22_42_45_145\n\nChange-Id: I12f7b3bc9e9cf5a97114082d3a634a42742843d5\n"
    },
    {
      "commit": "c3c91c4267ae5bc70a05a56b8cfc362638f266f1",
      "tree": "172b76c7a784d996e83093d51ec4e7c0e8344730",
      "parents": [
        "ced2e414c0c3feedb00385649a70d6e991034207",
        "7ae97298c55d9ba21d2dc037cc7d9fae54afa183"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Feb 24 20:04:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Feb 24 20:04:55 2016 +0000"
      },
      "message": "Merge \"Minor fixes for bashate trunk\""
    },
    {
      "commit": "a91d7d8d05e31d7cd5a8bdc350ac42dd0cc6da6f",
      "tree": "8da17a024216e11841d11fafafa36e4c3509eafa",
      "parents": [
        "6bb429359d4f1c8d2fe814c7cc90cc469cc1f5bd",
        "8a4dea24faa51e79507aa3f1655cea46a382e95d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Feb 24 19:40:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Feb 24 19:40:46 2016 +0000"
      },
      "message": "Merge \"Ironic: Update is_ironic_hardware function\""
    },
    {
      "commit": "1ff75ff87fc2a46d1f88918d94be48e5d59e3aab",
      "tree": "203549ad410877cb51e85b8f463730ed3352d7bc",
      "parents": [
        "ef0129c7ce0e1a7704ba390b851f5d4a787e247b"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 19 14:28:37 2016 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 19 14:39:45 2016 +1100"
      },
      "message": "Always strip package comments\n\nIn the \"I can\u0027t believe I missed this\" category -- the existing strip\nmethod removes shortest match (%); which fails when you put another #\nin the comment (like \"refer to bug#1234\").  Change to the longest\nmatch which should strip everything from the first \"#\" to the end\n(since that\u0027s going to be the longest).\n\nChange-Id: I47f5e710ebd87b0f54549732e7d64cf42c7a6b65\n"
    },
    {
      "commit": "8a4dea24faa51e79507aa3f1655cea46a382e95d",
      "tree": "12854d178d834c55c0bb807a1066962e712d27b5",
      "parents": [
        "4bcf6529d5096c16fd1b9c418d5c40d2bb8a2831"
      ],
      "author": {
        "name": "Lucas Alvares Gomes",
        "email": "lucasagomes@gmail.com",
        "time": "Thu Feb 18 15:52:22 2016 +0000"
      },
      "committer": {
        "name": "Lucas Alvares Gomes",
        "email": "lucasagomes@gmail.com",
        "time": "Thu Feb 18 15:58:32 2016 +0000"
      },
      "message": "Ironic: Update is_ironic_hardware function\n\nThe DevStack module of Ironic added a new configuration variable called\nIRONIC_IS_HARDWARE that can be set to True/False to indicate that we are\nsetting up devstack to deploy physical or virtual machines (see the\ndepends flag). Prior to that, the devstack code assumed that if the\ndriver name loaded is !\u003d *_ssh then it\u0027s a physical hardware but now we\nneed to kill this assumption because we have means (see the virtualbmc\nutility) to test drivers such as pxe_ipmitool and agent_ipmitool using\nvirtual machines.\n\nDepends-On: I5edc51c7fc8b6f0bb7fe4ca129596709a32eb93e\nRelated-Bug: #1544642\nChange-Id: I8b6363bbe280ddd2720c570851bc40e2804a40e2\n"
    },
    {
      "commit": "4bcf6529d5096c16fd1b9c418d5c40d2bb8a2831",
      "tree": "ca651ad35111e3e3f4b0e49b331eba68858d941d",
      "parents": [
        "772e914769dcaba6494ad1427ff0e340d73bfc5b",
        "edc11c2f834e45dea9c9c0fcda21369d2afa30e2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 18 06:50:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 18 06:50:18 2016 +0000"
      },
      "message": "Merge \"Keystone support deploy in uwsgi\""
    },
    {
      "commit": "7ae97298c55d9ba21d2dc037cc7d9fae54afa183",
      "tree": "f6dfe9c2e05a9f2b3bb9f8b3613ed91341f0bc2f",
      "parents": [
        "f130b283d9603477c0ffa7705eec39d73798b4d2"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Feb 16 14:50:53 2016 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Feb 16 14:50:53 2016 +1100"
      },
      "message": "Minor fixes for bashate trunk\n\nWe don\u0027t have a new bashate release yet, but this fixes some minor\nissues when used with bashate trunk.\n\nThe only two things triggered are stricter checking of assignment in\nlocal declartions (catches quotes) and one instance of evaluating\narithmetic result in tools/xen/functions.\n\nTherefore, hopefully, this change has no effect!\n\nChange-Id: I3fd5d55236e90c2f2c25243af87adaf0c1b763e2\n"
    },
    {
      "commit": "96006658bedbdfa98e4d0685852f057aeb2ae1a6",
      "tree": "87617fa281e59d0d713f8004c76b6fba7b9888d6",
      "parents": [
        "f130b283d9603477c0ffa7705eec39d73798b4d2"
      ],
      "author": {
        "name": "ptoohill1",
        "email": "phillip.toohill@rackspace.com",
        "time": "Mon Feb 15 16:07:50 2016 -0600"
      },
      "committer": {
        "name": "ptoohill1",
        "email": "phillip.toohill@rackspace.com",
        "time": "Mon Feb 15 18:41:14 2016 -0600"
      },
      "message": "Add LinuxMint to distro check\n\nAdds LinuxMint to the distro checking. This allows linux mint with\nthe FORCE option to run. This will not fix for other distros that\ndo not pass the checks.\n\nChange-Id: I42599c1bd851d2b61a56a3960f42ad051aab1727\nCloses-Bug: #1545864\n"
    },
    {
      "commit": "ed92e43178b4f910adc038d1b0b6788e21513f32",
      "tree": "496e4295707a9fa44ffd47ed813024537f683d08",
      "parents": [
        "f130b283d9603477c0ffa7705eec39d73798b4d2"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Feb 16 10:56:56 2016 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Feb 16 10:56:56 2016 +1100"
      },
      "message": "Add some notes on DISTRO setting\n\nIt was pointed out in I42599c1bd851d2b61a56a3960f42ad051aab1727 that\nafter I46a2c36d95327087085df07cb797eb91249a893c we now die if we can\u0027t\ndetermine DISTRO, rather than take a guess.\n\nAfter some consideration, I don\u0027t consider this a regression.  This\ndefault matching was basically only working for LinuxMint, because we\nalready have some matching there for setting os_PACKAGE that makes us\nknow the platform is Ubuntu-ish.\n\nHowever, I would certainly agree it is not particularly clear as to\nwhy.  This just adds some comments explaining why we can not just add\na default DISTRO fall-through and directs implementors on how to add\nsupport for their platform.\n\nChange-Id: I4b07259be1427d86a7154906646073d08dd07294\n"
    },
    {
      "commit": "edc11c2f834e45dea9c9c0fcda21369d2afa30e2",
      "tree": "7a87388c66878822d5454dbe82279019e4680f82",
      "parents": [
        "a03053660a3867b4f7622303c0499a6b79292cca"
      ],
      "author": {
        "name": "Brant Knudson",
        "email": "bknudson@us.ibm.com",
        "time": "Mon Dec 14 15:32:05 2015 -0600"
      },
      "committer": {
        "name": "Brant Knudson",
        "email": "bknudson@us.ibm.com",
        "time": "Mon Feb 15 08:45:22 2016 -0600"
      },
      "message": "Keystone support deploy in uwsgi\n\nKeystone is going to remove support for eventlet. Rather than only\nhave one way to run keystone (in Apache Httpd with mod_wsgi), we\nshould continue to gate on multiple wsgi containers to ensure that\nkeystone remains container-agnostic. The suggested alternative\ncontainer is uwsgi.\n\nTo run keystone in uwsgi rather than httpd or eventlet, set the\nfollowing env var in local.conf:\n\n KEYSTONE_DEPLOY\u003duwsgi\n\nThere\u0027s a lot of options to uwsgi. Here\u0027s some protips:\nhttp://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html\n\nChange-Id: If3b49879ce5181c16f0f0ab0db12fa55fe810a41\n"
    },
    {
      "commit": "5073896cc9f47d4f8c489250bb5585b2190abb5a",
      "tree": "ca5af5c4c22cb30d0b9ee7d33b1e408171657bda",
      "parents": [
        "cd23ab9644ddd9b355632d1d0d6ed07206b876da",
        "7710e7fc273dd9af6799ea565bbd21ce03745a44"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Feb 14 14:42:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Feb 14 14:42:43 2016 +0000"
      },
      "message": "Merge \"Only use lsb_release for distro tags\""
    },
    {
      "commit": "4723e618ccf5e3dda01776221f95f289ae97540d",
      "tree": "f0d24e5cafe02e98155ee662ea2398716185ed7f",
      "parents": [
        "e20cb43fd691c77919d77618bce46bc8c3e4de11",
        "5dcbf7aeffb6c98f723f3045c22de23ed38f4510"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Feb 08 23:07:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Feb 08 23:07:29 2016 +0000"
      },
      "message": "Merge \"Don\u0027t die when yum fails.\""
    },
    {
      "commit": "e20cb43fd691c77919d77618bce46bc8c3e4de11",
      "tree": "d5f7974081b0564c6d2d7e8bba2ebf0b69db9f76",
      "parents": [
        "25fe1be8b151b4ac529fdf03be50f7db65033abf"
      ],
      "author": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Fri Feb 05 12:00:18 2016 -0800"
      },
      "committer": {
        "name": "Clark Boylan",
        "email": "clark.boylan@gmail.com",
        "time": "Fri Feb 05 12:00:18 2016 -0800"
      },
      "message": "Set different cloud name for alt_demu user\n\nHaving multiple clouds with the same name in clouds.yaml confuses\nopenstack client config and it may not choose the intended cloud.\nUnfortunately the new alt_demo user\u0027s clouds.yaml config used a\nduplicate name creating confusion for clouds.yaml consumers.\n\nCorrect this by using a unique cloud name, devstack-alt, for use by the\nalt_demo user.\n\nChange-Id: I2cb8f10ab5abfedf76ead309f237730ce8ce2ad4\n"
    },
    {
      "commit": "c67d22e2ed0eb3fa0786f4314752ab7b26758ea3",
      "tree": "03819d602686d9c625b27cf1a48e85138df8c672",
      "parents": [
        "3c92590101bffc53cadcc04f8774d9deca01e44b"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Feb 02 05:51:14 2016 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Feb 02 05:51:14 2016 -0500"
      },
      "message": "make the alt_demo user during normal install\n\nFor testing reasons it\u0027s typically very useful to have a second non\nadmin user to cross check that it can\u0027t do a thing to the first\nuser. It was useful enough we always created it with tempest (though\nwe didn\u0027t always use it).\n\nThis makes devstack always create an alt_demo user, which is available\nin occ as devstack-alt. This will help us unwind some of the keystone\nv3 breaks with functional tests using keystone cli to build this\nsecond user.\n\nChange-Id: Iaaf02469180563e2d8c413fee0ee66ada2296cfa\n"
    },
    {
      "commit": "74379df11f6ce2e76d1448f4ffd6db9528768727",
      "tree": "a17daf765a3194ce5c4bf67d6ca0b6c441700cb0",
      "parents": [
        "dd60f2cd1c348cfdccfd4838812853e41cb26ae2"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Jan 21 10:20:08 2016 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Thu Jan 21 10:20:08 2016 -0500"
      },
      "message": "Remove leftover homedir clouds.yaml files\n\nWe don\u0027t write files here anymore, but it\u0027s higher in the precedence\norder than the /etc/openstack/clouds.yaml file we do write. Some\ndevelopers who have long-lived devstacks who update infrequently have\nbeen bitten by the leftover file.\n\nChange-Id: I8af6bd465f74099c560dddba6b5221dd79cbc965\n"
    },
    {
      "commit": "5dcbf7aeffb6c98f723f3045c22de23ed38f4510",
      "tree": "760f28708debe4cecd6e71b37d69d1d46431d2da",
      "parents": [
        "1d27155f650e9b8e4053a201f1f08c494b820de2"
      ],
      "author": {
        "name": "Federico Ressi",
        "email": "federico.ressi@intel.com",
        "time": "Wed Jan 13 12:17:32 2016 +0000"
      },
      "committer": {
        "name": "Federico Ressi",
        "email": "federico.ressi@intel.com",
        "time": "Wed Jan 20 09:06:55 2016 +0000"
      },
      "message": "Don\u0027t die when yum fails.\n\nNot all yum failures has to be considered\ncatastrofic failures also because install_package\nfunction should implement the same behavior in Fedora,\nCentOS and Ubuntu. Let return the error to be solved at higher\nlevel.\n\nChange-Id: I93e9f312a94aeb086925e069a83ec1d3d3419423\nCloses-Bug: #1522590\n"
    },
    {
      "commit": "c461db4a2f75333dceb85c9fb5c90660c0623b11",
      "tree": "6cf38275bcec909855db4059a3f003e54ac6e8ce",
      "parents": [
        "ea7fd5515344c18a5cec308fada67b6f3f6ab482",
        "f568c3a141f04c86ba2d971eb0fa908b4a060731"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jan 15 21:49:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jan 15 21:49:15 2016 +0000"
      },
      "message": "Merge \"Fix SIGITIN hang with apt-get\""
    },
    {
      "commit": "ed9487a885caf81b9283f39702261d91c94ac393",
      "tree": "d67abab37bc44dc4162ab704d668ecce00ead9ef",
      "parents": [
        "2cb3db338a17bd26fef1f56fc155be5d01a6ef7e"
      ],
      "author": {
        "name": "Davanum Srinivas (dims)",
        "email": "davanum@gmail.com",
        "time": "Mon Jan 11 21:20:34 2016 +0000"
      },
      "committer": {
        "name": "Surojit Pathak",
        "email": "suro@yahoo-inc.com",
        "time": "Tue Jan 12 18:57:37 2016 +0000"
      },
      "message": "Revert \"Don\u0027t die when yum fails.\"\n\nThis reverts commit 2babf3963f4eea8558b0c287c51e6faeb7069c70.\n\nThis breaks oslo.messaging jobs:\nhttp://logs.openstack.org/32/265932/1/check/gate-oslo.messaging-dsvm-functional-amqp1-centos7/f5f3eb9/console.html#_2016-01-11_20_03_33_162\n\n@kgiusti reports that PIPESTATUS[0] is always 1 on his centos7 box\n\nChange-Id: I013c22a3545f22c79a0616b4a98622d41bb17d77\n"
    },
    {
      "commit": "7710e7fc273dd9af6799ea565bbd21ce03745a44",
      "tree": "46bee50accf6f4c0ada1d89382ab92de5d0eebea",
      "parents": [
        "2cb3db338a17bd26fef1f56fc155be5d01a6ef7e"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Aug 27 16:15:32 2014 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Jan 12 09:23:35 2016 +1100"
      },
      "message": "Only use lsb_release for distro tags\n\nThe existing GetOSVersion has a lot of unused code which is wrong in\nseveral ways\n\n - the only path tested in upstream CI is with lsb_release, because\n   it\u0027s pre-installed on all nodes\n\n - the /etc/redhat-release checking probably still works, but is\n   unnecessary\n\n - If using lsb_release, os_UPDATE has never actually been set.\n\n - the /etc/SuSE-release branch checking is broken if the lsb package\n   is actually installed.  lsb checking does not set os_UPDATE but yet\n   the SuSE DISTRO setting relies on this to set a patch level (and so\n   does some of the rpm tags).  SuSE 11 is up to update 3, but the rpm\n   matching is stuck hard-coded to update 2.  I\u0027m guessing\n   installation is actually broken there.\n\n - the debian checking branch is broken.  The VERSION tags have been\n   removed and were not supposed to be relied on anyway (see notes in\n   [1])\n\nThis simplifies things:\n\n - remove OSX checking (moved here after discussions in\n   I31d0fdd30928ecc8d959a95838b1d3affd28ac6f)\n\n - only use the output of lsb_release.\n\n - A small best-effort check to pre-install lsb packages if not\n   detected (that avoids chicken-egg-problem of package-install\n   wrappers relying on os_* flags).\n\n - The unset os_UPDATE is removed.  It\u0027s only previous use was for\n   setting separate suse versions in the DISTRO element for matching\n   during package installs (since removed)\n\n - DISTRO setting is modified to use the parts of os_RELEASE it wants.\n   Per-above, this is the correct place to parse out specifics.\n\n - Call out the is_* functions, which are a better way to detect\n   platforms\n\n - Export the variables as read-only, since they shouldn\u0027t be reset\n\n[1] http://sources.debian.net/src/base-files/7.5/debian/changelog/\n\nChange-Id: I46a2c36d95327087085df07cb797eb91249a893c\n"
    },
    {
      "commit": "2cb3db338a17bd26fef1f56fc155be5d01a6ef7e",
      "tree": "1a3967e0315924419c90f8754d16c5a213677b60",
      "parents": [
        "5453cdd392148db4af45fd950542085c2083de09",
        "2babf3963f4eea8558b0c287c51e6faeb7069c70"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jan 11 17:01:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jan 11 17:01:33 2016 +0000"
      },
      "message": "Merge \"Don\u0027t die when yum fails.\""
    },
    {
      "commit": "8df31a107d9d55233aef290733c56e2f953e5dd3",
      "tree": "4b3f0103d49a4670a476151beddfa00231c596b9",
      "parents": [
        "a3ab6865ff870b81f95a0e77da8881cb8a407a06",
        "59c6377ae51c024c28a6fba72de567bc97edda10"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jan 09 07:49:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jan 09 07:49:35 2016 +0000"
      },
      "message": "Merge \"Assign admin role for admin user on default domain\""
    },
    {
      "commit": "f568c3a141f04c86ba2d971eb0fa908b4a060731",
      "tree": "ef3539bbe11b20434cc48e661fb2f99be1ebb531",
      "parents": [
        "a5ea08b7526bee0d9cab51000a477654726de8fe"
      ],
      "author": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Thu Jan 07 19:10:50 2016 -0800"
      },
      "committer": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Fri Jan 08 15:01:05 2016 -0800"
      },
      "message": "Fix SIGITIN hang with apt-get\n\nFix an issue where apt-get consistently hangs due to a SIGTTIN being\nreceived. This occurs on a \u0027vanilla\u0027 devstack-gate VM, when running an\nironic-grenade job.\n\nUpstream has a bug related to this:\nhttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d555632\n\nhttp://www.gnu.org/software/libc/manual/html_node/Job-Control-Signals.html\nMacro: int SIGTTIN\n\n    A process cannot read from the user\u0027s terminal while it is running\n    as a background job. When any process in a background job tries to\n    read from the terminal, all of the processes in the job are sent a\n    SIGTTIN signal. The default action for this signal is to stop the\n    process. For more information about how this interacts with the\n    terminal driver, see Access to the Terminal.\n\nChange-Id: I8b1f3dccf329bb88e017eff7492da5e701b4892c\nCloses-Bug: #1532080\n"
    },
    {
      "commit": "2babf3963f4eea8558b0c287c51e6faeb7069c70",
      "tree": "0d6db3f2eea9ae396368b4a745d10a9a83c52363",
      "parents": [
        "828936c6ac8045fbb985ed2e89cdaa9a7c01241a"
      ],
      "author": {
        "name": "Federico Ressi",
        "email": "federico.ressi@intel.com",
        "time": "Sun Jan 03 20:20:12 2016 +0000"
      },
      "committer": {
        "name": "Federico Ressi",
        "email": "federico.ressi@intel.com",
        "time": "Fri Jan 08 15:30:02 2016 +0000"
      },
      "message": "Don\u0027t die when yum fails.\n\nNot all yum failures has to be considered\ncatastrofic failures also because install_package\nfunction should implement the same behavior in Fedora,\nCentOS and Ubuntu. Let return the error to be solved at higher\nlevel.\n\nChange-Id: Ia33bb98f47017f6ec00eb3b7261ed42d72efc573\nCloses-Bug: #1522590\n"
    },
    {
      "commit": "ecc1f41d5053807a70b51bcf2247b51d0ac81ae1",
      "tree": "ae6f491f51f5d14101b841e24b7b5a9519a05171",
      "parents": [
        "828936c6ac8045fbb985ed2e89cdaa9a7c01241a"
      ],
      "author": {
        "name": "Federico Ressi",
        "email": "federico.ressi@intel.com",
        "time": "Mon Dec 28 15:14:13 2015 +0100"
      },
      "committer": {
        "name": "Federico Ressi",
        "email": "federico.ressi@intel.com",
        "time": "Fri Jan 08 15:29:16 2016 +0000"
      },
      "message": "Don\u0027t reinstall package just after installing.\n\nBoolean logic used in install_package was wrong:\non nominal flow packages were actually installed twice.\nThis should fix it.\n\nChange-Id: Ia465414936b272d04523a11f83d6ded378fe1daf\nCloses-Bug: #1518544\n"
    },
    {
      "commit": "7792bd20254e5df4ee2e18b751c07be0b7d68152",
      "tree": "4539bafc1b48e9f517c39202246621cf9c3d9100",
      "parents": [
        "a5ea08b7526bee0d9cab51000a477654726de8fe",
        "f73263d47a85f1fe6d1b80d10e85fe35a46aa8ef"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jan 08 07:23:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jan 08 07:23:41 2016 +0000"
      },
      "message": "Merge \"Remove uses of --os-url and --os-token\""
    },
    {
      "commit": "a5ea08b7526bee0d9cab51000a477654726de8fe",
      "tree": "690fe0ea16522a540f40433461eb670b5273424f",
      "parents": [
        "b6156915768b65fbc588c7601fc5a6a1e89d186c"
      ],
      "author": {
        "name": "Alexander Schmidt",
        "email": "alexs@linux.vnet.ibm.com",
        "time": "Wed Dec 02 15:30:44 2015 +0000"
      },
      "committer": {
        "name": "Markus Zoeller",
        "email": "mzoeller@de.ibm.com",
        "time": "Thu Jan 07 10:14:39 2016 +0100"
      },
      "message": "Add distro support for KVM for IBM z Systems\n\nAdd \"KVM for IBM z Systems\" to the list of Fedora-like distros.\n\nAs the distribution does not have a dedicated kvm package,\nprevent the installation of the kvm package during the libvirt\nsetup.\n\nChange-Id: Ibb5c60797d6867264f9dea7fea85cdf1d7c72ded\n"
    },
    {
      "commit": "feb2babd07a5aa8583f68332d6fdceba8b3eb7f9",
      "tree": "2140cd14e0f63b9f59cefe81fe643cc39abba4bd",
      "parents": [
        "9f8cf83e6914165543d619e053557aa21a8cf4ee",
        "af0801de3c1b1c51cf1a995c2939e182d2ef4926"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jan 06 18:28:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jan 06 18:28:26 2016 +0000"
      },
      "message": "Merge \"Make logfile symlinks with relative names.\""
    },
    {
      "commit": "c6dbfdeb6bf21de7f0c645b86f1cc74f8cb872c4",
      "tree": "a533cb9f7ddd7ca5dd4cb576004d1e188494a40f",
      "parents": [
        "8ba3cf0132f1d97ccf5e55aa82f67efbd601da6a",
        "2ca8af45a78226f29c3251cbef6449a0a51a4c1f"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 05 19:24:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 05 19:24:10 2016 +0000"
      },
      "message": "Merge \"Add 5 time measurement points\""
    },
    {
      "commit": "e208d060e17e2ad622c7b06cd90baed0eeed89f8",
      "tree": "da018a768b076a2d5938af9c36ae1748c6a713b3",
      "parents": [
        "7bd9ca8a3be6aeb50bffdce48b220615b1297f79"
      ],
      "author": {
        "name": "Federico Ressi",
        "email": "federico.ressi@intel.com",
        "time": "Sat Nov 21 11:15:39 2015 +0000"
      },
      "committer": {
        "name": "Federico Ressi",
        "email": "federico.ressi@intel.com",
        "time": "Tue Jan 05 08:21:05 2016 +0000"
      },
      "message": "Preserve result returned by apt-get and pip\n\nChange I855ffe9c7a75e9943106af0f70cf715c34ae25c5 and\nI368fec44858bd97fc6a314fb20eed2b10932cbb1 added timing\ninfrastructure which hides the return value of\nthe main commands.  Restore the prior behaviour.\n\nChange-Id: I4a536abefa7824ac6d42e7bbbf1079d9cc055984\nCloses-Bug: #1518545\n"
    },
    {
      "commit": "85c466c2d743382cc7da81c6d9091273d0566bf8",
      "tree": "76843bd86667253a09d0738b69197af810ef0ff7",
      "parents": [
        "227f20ceb2667944a20adb54e48e47f51ede79c1",
        "5979f47a3df4e7662c70236e7ddf0bedcbe5ea25"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 05 04:55:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 05 04:55:21 2016 +0000"
      },
      "message": "Merge \"Fix get_plugin_packages when multiple plugins are in use\""
    },
    {
      "commit": "f73263d47a85f1fe6d1b80d10e85fe35a46aa8ef",
      "tree": "e126c78a212790b72faf066aeaf64e29c82abcb5",
      "parents": [
        "227f20ceb2667944a20adb54e48e47f51ede79c1"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Dec 25 08:29:32 2015 -0600"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Jan 04 09:12:05 2016 -0600"
      },
      "message": "Remove uses of --os-url and --os-token\n\nThose were originally used to bootstrap with admin-token from keystone,\nbut the openstack client is fully configured now, leaving no reason to\nnot just use the actual users that are there.\n\nChange-Id: I80bdee33a78a97f5d3910aa36dc331f19780d2f1\n"
    },
    {
      "commit": "227f20ceb2667944a20adb54e48e47f51ede79c1",
      "tree": "1cc80ca6291dac797aed94a55d3e6456d30cd874",
      "parents": [
        "0d81785bbe1228e477e395595d37bef9775f1cab",
        "4ce859ab2b99e68ce937c9c9df83d9270c8ef9fb"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jan 04 13:59:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jan 04 13:59:56 2016 +0000"
      },
      "message": "Merge \"update create_heat_accounts, don\u0027t use os_url and os_token\""
    },
    {
      "commit": "5979f47a3df4e7662c70236e7ddf0bedcbe5ea25",
      "tree": "6ada6cbdb2983aaa21dac6370e84338eafd85ee2",
      "parents": [
        "e8788c0129e0634bbefe0382ad82b70a38f38bc6"
      ],
      "author": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Sun Jan 03 18:08:14 2016 +0100"
      },
      "committer": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Mon Jan 04 11:53:31 2016 +0100"
      },
      "message": "Fix get_plugin_packages when multiple plugins are in use\n\nDue to missing space no plugin packages are installed in this case.\n\nChange-Id: I56b105510e4d31a411f2531fdb20c4ddf1ebff20\nCloses-Bug: #1530675\n"
    },
    {
      "commit": "4ce859ab2b99e68ce937c9c9df83d9270c8ef9fb",
      "tree": "762f2168ff84b832c5e2d197ca766a5cbe3eefc5",
      "parents": [
        "1adb2e1c119c0862d2661f2492a9352257954c4a"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sun Dec 20 01:27:30 2015 -0500"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sun Dec 20 01:27:30 2015 -0500"
      },
      "message": "update create_heat_accounts, don\u0027t use os_url and os_token\n\nCurrently, the function create_heat_accounts uses the OS_URL and\nOS_TOKEN environment variables. This is a bad choice for several\nreasons, most importantly we are sending the \"ADMIN_TOKEN\" value\nas a header. There is also no reason to not use a standard admin\nuser to create these resources.\n\nChange-Id: I70b41d69917b9e53ad09c2c61e022ef09a50acfd\n"
    },
    {
      "commit": "47367071cdc110c40ec5c92d12f4dbe50cc553d4",
      "tree": "f4fd1c71781800adc16a2a9adf220414d98f599b",
      "parents": [
        "6f8048589873e4fe526e850bb6a02cd653d76b56"
      ],
      "author": {
        "name": "Jim Rollenhagen",
        "email": "jim@jimrollenhagen.com",
        "time": "Thu Dec 10 14:24:00 2015 +0000"
      },
      "committer": {
        "name": "vsaienko",
        "email": "vsaienko@mirantis.com",
        "time": "Fri Dec 18 17:26:02 2015 +0200"
      },
      "message": "Remove ironic code from tree\n\nThis removes all of the ironic code from the devstack tree, in favor of\nthe devstack plugin in Ironic\u0027s tree.\n\nDepends-On: I659e3de5c64df798441798ff48ba5c9c0506585a\nDepends-On: I2c52bc014f1b0dbc6b0ae22a4deb4132b4c28621\nChange-Id: I5125fce295c79600781469c2f48bea80e7600081\n"
    },
    {
      "commit": "2ca8af45a78226f29c3251cbef6449a0a51a4c1f",
      "tree": "9db1b9497e9b199ec86b1f9ca74282020e779004",
      "parents": [
        "63b7d7bcae863a22feab34079d2d4b5fc1c845f3"
      ],
      "author": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Tue Dec 08 15:36:13 2015 +0900"
      },
      "committer": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Thu Dec 17 20:28:54 2015 +0900"
      },
      "message": "Add 5 time measurement points\n\nrun_process           process starting time\ntest_with_retry       process starting time (for neutron legacy)\nrestart_apache_server Apache HTTPD restart time\nwait_for_service      HTTP server waiting time\ngit_timed             git command execution time\n\nexample\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nDevStack Components Timed\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nrun_process - 52 secs\ntest_with_retry - 3 secs\napt-get-update - 8 secs\npip_install - 76 secs\nrestart_apache_server - 9 secs\nwait_for_service - 11 secs\ngit_timed - 127 secs\napt-get - 15 secs\n\nChange-Id: I66140726617450cd9fe9b702092cacf053a20065\n"
    },
    {
      "commit": "fe25a2a7343a56ec4b2b194d7d180cd8f9e56705",
      "tree": "69d8b8eb2ca55a90577e5a607dc5f46be81f9a98",
      "parents": [
        "c81fb988143052fffa3d75ceb7cd15fbac1449f5",
        "41d01104b16bf5d0d6d4d7d2a1e5883d34bff810"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Dec 15 12:47:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Dec 15 12:47:54 2015 +0000"
      },
      "message": "Merge \"remove generic extras.d support\""
    },
    {
      "commit": "af0801de3c1b1c51cf1a995c2939e182d2ef4926",
      "tree": "c7a156d9a17419dabce87ffd727c9b749324daa0",
      "parents": [
        "7b7101f1c5ccd4d0722245613df8c8f7a67e79b9"
      ],
      "author": {
        "name": "Philipp Marek",
        "email": "philipp.marek@linbit.com",
        "time": "Wed Dec 09 13:51:56 2015 +0100"
      },
      "committer": {
        "name": "Philipp Marek",
        "email": "philipp.marek@linbit.com",
        "time": "Wed Dec 09 13:52:05 2015 +0100"
      },
      "message": "Make logfile symlinks with relative names.\n\nUsing absolute names for the symlink breaks in quite a few ways;\n * when creating a tar file of the logs,\n * when serving via NFS,\n\nor any other case where the directory gets transferred to\na different machine.\n\nSo just create the symlink with relative names, then they\u0027ll work\nin any location.\n\nChange-Id: I432a69754985fc71feb0068b7adca01066d7bc1b\n"
    },
    {
      "commit": "41d01104b16bf5d0d6d4d7d2a1e5883d34bff810",
      "tree": "58daac01ad8f530c00d6cedccf068c08dbca66d5",
      "parents": [
        "b889294af7aa1ccf613da28fb08f547306e0f581"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Dec 03 08:12:23 2015 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Dec 03 08:12:23 2015 -0500"
      },
      "message": "remove generic extras.d support\n\nThis removes the generic extras.d support, which we said we\u0027d do at\nMitaka-1. In tree extras.d continues to function as before, though we\nneed stories to get ceph and ironic into plugins, and a better\nsolution for Tempest.\n\nChange-Id: I8b134446dc08a2c3852423ca71af2f469f85496e\n"
    },
    {
      "commit": "88ee8ce4684e13865123636dd5d2baa5d6a44ef7",
      "tree": "f94f7c019fc2e280cbc68360e7088809672e6f27",
      "parents": [
        "b889294af7aa1ccf613da28fb08f547306e0f581"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Dec 02 07:47:31 2015 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Dec 03 07:44:15 2015 -0500"
      },
      "message": "create apt_get_update to try to work around broken mirrors\n\nUbuntu\u0027s apt mirroring mechanism produces inconsistent mirrors pretty\nregularly. The devstack-gate apt-get update model seems to have been\nmore effective getting past this than what we did in devstack. Adopt\nthat method for our updates.\n\nChange-Id: I97c7896ef38b275aacb4f933fc849acee1bab858\n"
    },
    {
      "commit": "523f48803609b35350b624244fa73b1030c1d5fa",
      "tree": "17f99ab223f42eec58523fa89a49f243efba754b",
      "parents": [
        "307730acd9d271bc4c3d44f2dfed0eab67e1657d"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Oct 13 11:03:03 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Nov 27 15:36:04 2015 +1100"
      },
      "message": "Namespace XTRACE commands\n\nI noticed this when debugging some grenade issues failures.\n\nAn include of grenade/functions stores the current value of XTRACE\n(on) and disables xtrace for the rest of the import.\n\nWe then include devstack\u0027s \"functions\" library, which now overwrites\nthe stored value of XTRACE the current state; i.e. disabled.\n\nWhen it finishes it restores the prior state (disabled), and then\ngrenade restores the same value of XTRACE (disabled).\n\nThe result is that xtrace is incorrectly disabled until the next time\nit just happens to be turned on.\n\nThe solution is to name-space the store of the current-value of xtrace\nso when we finish sourcing a file, we always restore the tracing value\nto what it was when we entered.\n\nSome files had already discovered this.  In general there is\ninconsistency around the setting of the variable, and a lot of obvious\ncopy-paste.  This brings consistency across all files by using\n_XTRACE_* prefixes for the sotre/restore of tracing values.\n\nChange-Id: Iba7739eada5711d9c269cb4127fa712e9f961695\n"
    },
    {
      "commit": "3bc6f042e4d93bcae25841915f84184a9799df2d",
      "tree": "8ffdc729b4de56b7d761455b40be4897371bf298",
      "parents": [
        "e0b2af0b476dd42da8b820dc2583f547e7d9457a",
        "0ec80802735163fdbdb4ceaa339aa73f93bbd87a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 16 05:15:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 16 05:15:49 2015 +0000"
      },
      "message": "Merge \"Remove multi-region workaround\""
    },
    {
      "commit": "0f1a4aba5e4010c9590e56ee785e0bad5c8e23d9",
      "tree": "a30ed872d8d8005997c024cbd9bb7142eb0a431a",
      "parents": [
        "075535d31130db08f823687fb38fe00bec0e5e66",
        "33c9a67ead4b61a9eb423f71ca4f8e062c3b5ebd"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Nov 12 22:06:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Nov 12 22:06:23 2015 +0000"
      },
      "message": "Merge \"Fix typos on three comments and one message\""
    },
    {
      "commit": "33c9a67ead4b61a9eb423f71ca4f8e062c3b5ebd",
      "tree": "98caf8ff2fc95e33520d86aaca5ade57bd202bcb",
      "parents": [
        "1987cfb1bea276202926d5de624754ed6f5c8e7f"
      ],
      "author": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Thu Nov 12 19:50:00 2015 +0900"
      },
      "committer": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Thu Nov 12 19:53:06 2015 +0900"
      },
      "message": "Fix typos on three comments and one message\n\nFixes typos on three comments and one message\nin functions/functions-common\n\nChange-Id: I2c926ca29b284afd4534b92860fa46f248676a83\n"
    },
    {
      "commit": "9329290183c96be45363325a244861065413562d",
      "tree": "e5b4c301b107c227cc90603e2b6c64d5c5cb9a52",
      "parents": [
        "4622fd682eced182b0b47c64e5ca3779b780ea24"
      ],
      "author": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Mon Nov 09 15:45:04 2015 +1100"
      },
      "committer": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Thu Nov 12 09:56:21 2015 +1100"
      },
      "message": "Update comments to reflect current USE_SCREEN usage\n\nIn a couple of places the tracking of USE_SCREEN has drifted from the\ncomments.\n\nCorrect that.\n\nChange-Id: I63bdd5ca4de49bf653f5bc8f8e0e5efe67ef605c\n"
    },
    {
      "commit": "7eaeefac80d40bf117d6a263f2fae02e129959da",
      "tree": "1329e7aa0e5dbc7349a729e7f11506e3ff5a246a",
      "parents": [
        "6a9641753c667231b4e310d5320c43472acd5c63",
        "536b8c1d2cf9d2523dc60f74190ef566a8c3fc4b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Nov 11 05:13:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Nov 11 05:13:07 2015 +0000"
      },
      "message": "Merge \"Allow screen without logging to disk\""
    },
    {
      "commit": "6a9641753c667231b4e310d5320c43472acd5c63",
      "tree": "3a96e865f7a0acd4b16961810725119fc26018d3",
      "parents": [
        "ef0d320981c6934d50cbd1deeef07edd38f80602",
        "7d515b5db8e98a54ff9c8c5211383f9f2c33b2db"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Nov 10 22:04:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Nov 10 22:04:51 2015 +0000"
      },
      "message": "Merge \"Add check for get_packages argument\""
    },
    {
      "commit": "536b8c1d2cf9d2523dc60f74190ef566a8c3fc4b",
      "tree": "8c9b3d883fe9dc299ebb239a723c67f6da88f515",
      "parents": [
        "390e2b954496c18c812f4b9d45652880b203c664"
      ],
      "author": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Mon Nov 09 10:05:37 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Nov 11 06:21:45 2015 +1100"
      },
      "message": "Allow screen without logging to disk\n\nIn some niche setups it is desirable to run OpenStack services under\nscreen, but undesirable to automatically keep a persistent log from\neach service.\n\nAdd a new variable SCREEN_IS_LOGGING that controls if screen logs each\nwindow to disk automatically.\n\nIdeally screen itself would be configured to log but just not activate.\nThis isn\u0027t possible with the screerc syntax.  Temporary logging can still\nbe used by a developer with:\n    C-a : logfile foo\n    C-a : log on\n\nChange-Id: I2a3abf15dea95ae99ddbdfe1309382df601b7d93\n"
    },
    {
      "commit": "fff4d8ef9dc5fd59caba5491ce725a1730407bf8",
      "tree": "e1315da5fd85ec3a3b120dfd38011b8d18454c06",
      "parents": [
        "70db365592c2199d619a32c9942d1a8f1ba5b985",
        "ee9bb76647e1424e0dc84d32df6ab8607dc4ec96"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 09 18:37:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 09 18:37:15 2015 +0000"
      },
      "message": "Merge \"Write clouds.yaml to only /etc\""
    },
    {
      "commit": "7d515b5db8e98a54ff9c8c5211383f9f2c33b2db",
      "tree": "acc9bbf5f1d5601db423656f8d8d402ceb95405a",
      "parents": [
        "a5e4c0f279b6101436820dbb6b3da3d06131c12d"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Nov 09 15:04:32 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Nov 09 15:04:32 2015 +1100"
      },
      "message": "Add check for get_packages argument\n\nAdd a quick check so we don\u0027t reintroduce bad arguments as in\nIe1b8d09369281059d21da61b2725a457f708ae9e\n\nChange-Id: Ibebc71791f2743eef64d6f7c2596d54a73ea92aa\n"
    },
    {
      "commit": "6b0a3c6745e9add33329924f19d5875ed2550790",
      "tree": "7e59225e4aad391e092d806ac9768134f295ebbf",
      "parents": [
        "9013bb0c24623ce8d064b561d4fd331e370762e1",
        "8043bfaf5ec6059e7245ff397672b1da0e563013"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Nov 05 21:46:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Nov 05 21:46:38 2015 +0000"
      },
      "message": "Merge \"Turn off tracing for service functions\""
    },
    {
      "commit": "0ec80802735163fdbdb4ceaa339aa73f93bbd87a",
      "tree": "a28e46096f4dc817d23ce077f740bad2b3080eef",
      "parents": [
        "a9e92c225c2144bbcfe553294b5c579364dece45"
      ],
      "author": {
        "name": "Daniel Gonzalez",
        "email": "daniel@gonzalez-nothnagel.de",
        "time": "Fri Oct 30 14:25:41 2015 +0100"
      },
      "committer": {
        "name": "Daniel Gonzalez",
        "email": "daniel@gonzalez-nothnagel.de",
        "time": "Fri Oct 30 15:01:46 2015 +0100"
      },
      "message": "Remove multi-region workaround\n\nWhen keystone API v3 was introduced, filtering regions when listing\nendpoints was not supported (see [1]). This caused multi-region devstack\ndeployments to fail (see [2]). A workaround was introduced to devstack\nto enable for multi-region deployments until region filtering would work\nin keystone API v3.\nNow that the bug related to region filtering in keystone is resolved,\nthe workaround should be removed.\n\n[1]: https://bugs.launchpad.net/keystone/+bug/1482772\n[2]: https://bugs.launchpad.net/devstack/+bug/1483784\n\nCloses-Bug: #1511745\nRelated-Bug: #1483784\nRelated-Bug: #1482772\nChange-Id: I52d13c3f5e7b77a7f8fb1be4dcea437988ebddfe\n"
    },
    {
      "commit": "2cee71865f96f2e08be0e7bb7c6f64cf1c796dbd",
      "tree": "00bde6eddec9a5b64b7ec9c0ef0676a39a8ddbe4",
      "parents": [
        "f1d34ec8c015d2e3c6fe450f4e2f6dcb039a31b6",
        "313ddaee6102fc03a3885bec3bf5e0d1e0214878"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 29 05:04:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 29 05:04:55 2015 +0000"
      },
      "message": "Merge \"Remove sudo from mkdir in $STACK_USER folder\""
    },
    {
      "commit": "5cdee8dd3311e501302993cd8c81b39cb6b45090",
      "tree": "665bbd6ec1aab84f2b3a910cd13a6db1fe935469",
      "parents": [
        "a692810ef05304856e5fd12ec786f3445ecca576"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Oct 19 14:17:18 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Oct 29 11:30:20 2015 +1100"
      },
      "message": "Update to bashate 0.3.2\n\nBashate 0.3.2 has a few new checks -- firstly make sure some of the\nplugins have #!/bin/bash, and fix up a couple of \"local\" changes that\nwere missed by I9c8912a8fd596535589b207d7fc553b9d951d3fe\n\nChange-Id: I9e4b1c0dc9e0f709d8e76f9c9bf1c9478b2605ed\n"
    },
    {
      "commit": "ee9bb76647e1424e0dc84d32df6ab8607dc4ec96",
      "tree": "dba1f678b0e60644d21ebec1b68e9ff423a50ebf",
      "parents": [
        "313ddaee6102fc03a3885bec3bf5e0d1e0214878"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Oct 19 15:16:18 2015 -0400"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 28 14:28:28 2015 +1100"
      },
      "message": "Write clouds.yaml to only /etc\n\nAfter having migrated the copies of clouds.yaml to just consume from\n/etc, remove the duplicate copy.\n\nChange-Id: I036704734785958c95d2234917d7b40bd797a375\n"
    },
    {
      "commit": "313ddaee6102fc03a3885bec3bf5e0d1e0214878",
      "tree": "1fd9e830d2f8e940104f36ca42ab428a77c31d9e",
      "parents": [
        "0afcac2e01580b7aee886272b8ed7eaf9c13132c"
      ],
      "author": {
        "name": "Lenny Verkhovsky",
        "email": "lennyb@mellanox.com",
        "time": "Tue Oct 20 11:26:34 2015 +0300"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 28 12:18:24 2015 +1100"
      },
      "message": "Remove sudo from mkdir in $STACK_USER folder\n\nThis fails in the environment where sudo does not have permissions to\nwrite in /home/$USER folder, e.g. [1]\n\nAlso clean-up the comment/variable usage a bit; the location isn\u0027t\nactually variable at all (and that\u0027s fine, but we don\u0027t need a global\nhere)\n\n[1] http://144.76.193.39/ci-artifacts/228979/10/Nova-ML2-Sriov/console.html.gz\n\nChange-Id: I6807eae9d1c27219aa7c19de29f24fa851aa787c\n"
    },
    {
      "commit": "8f385dde22815de5e7487e52cf78374f5c2967b3",
      "tree": "783e4c9c49d62c1f062c055efea90e23f5f40824",
      "parents": [
        "80fcf354ed6d45c3db257a9ce9181d83dd5aca65"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Oct 19 15:13:30 2015 -0400"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Oct 20 11:54:00 2015 +1100"
      },
      "message": "Write clouds.yaml to /etc as well\n\nThere are more than one user that need to access clouds.yaml values\nin tests. Rather than copying the file everywhere, simply output\nit to /etc/openstack.\n\nHowever, we have things copying it at the moment, so output to\nboth places. A follow up patch will remove the homedir version.\n\nChange-Id: I21d3c2ad7a020a5ab02dc1ab532feae70b718892\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": "8043bfaf5ec6059e7245ff397672b1da0e563013",
      "tree": "52ff4b8ebf097e92fca6a4e77764bbe42378e6b1",
      "parents": [
        "46d50a6b8ed2c6f76bd0e3589eaff557133d10be"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 14 14:53:18 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 14 16:36:08 2015 +1100"
      },
      "message": "Turn off tracing for service functions\n\nThese functions commonly externally called (as part of stackrc\ninclusion, even) and do a fair bit of iteration over long\nservice-lists, which really fills up the logs of devstack and grenade\nwith unnecessary details.\n\nThe functions are well tested by unit-tests, so we are very unlikely\nto need to debug internal issues with them in a hurry.  Thus turn\nlogging down for them.\n\nChange-Id: I63b9a05a0678c7e0c7012f6d768c29fd67f090d2\n"
    },
    {
      "commit": "d111182f218094dfdd88bda63af024c0c6e5d8cd",
      "tree": "6efbaec54afc4965767c187b5743c25b8346f438",
      "parents": [
        "5a98d4f7d0a1cf00f2aca9e0f3f6cdc285c1ee79",
        "ada886dd43ccc07f48d3a82d8d3d840fe5096c03"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Oct 14 02:43:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 14 02:43:52 2015 +0000"
      },
      "message": "Merge \"Don\u0027t mix declaration and set of locals\""
    },
    {
      "commit": "95c33d532f5d69516c0fbe123595f00f00792995",
      "tree": "a0665687ed27e97e010d40acf7ba884980ebb92b",
      "parents": [
        "64be3210e6bae709ee88736f2b7554db6e82f28e"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Oct 07 11:05:59 2015 -0400"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Oct 12 23:08:56 2015 +0000"
      },
      "message": "add timing infrastructure to devstack\n\nthis adds a timing infrastructure to devstack to account for time\ntaken up by set of operations. The first instance of this is\naccounting the time taken up by doing apt_get calls.\n\nChange-Id: I855ffe9c7a75e9943106af0f70cf715c34ae25c5\n"
    },
    {
      "commit": "64be3210e6bae709ee88736f2b7554db6e82f28e",
      "tree": "2dfdcda131b89c63963ea144ef1846bcfa1c345f",
      "parents": [
        "0914d04343b60392c5227559dcaa0da39b2d1c64"
      ],
      "author": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Mon Oct 12 13:10:24 2015 +0200"
      },
      "committer": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Mon Oct 12 13:36:30 2015 +0200"
      },
      "message": "Don\u0027t assume that $i variable won\u0027t be overriden in extras.d plugins\n\nThis causes an incorrect warning about ironic jobs putting an unexpected\nfile in extras.d.\n\nChange-Id: I57acf91fba3fe13b3cc8dd739034e146a0b237c4\n"
    },
    {
      "commit": "c6d470142e0a0359a7322e9b76d61ba15caf95bc",
      "tree": "e2cd8f7b1a192d0bee8e870b22e3369ac6d759ca",
      "parents": [
        "b2b82a0f34d84ecf5329703bf6e63c89272ef2da"
      ],
      "author": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Fri Oct 09 14:57:05 2015 +0000"
      },
      "committer": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Fri Oct 09 16:34:32 2015 +0000"
      },
      "message": "Perform additional disable_service checks\n\nWith the advent of plugins and their settings files it has become\npossible to disable_service in local.conf only to have the service\nre-enabled in a plugin settings file. This happens because of\nprocessing order.\n\nTo get around this the disable_service function now aggregates\nservice names into a DISABLED_SERVICES variable which is then checked\nduring enable_service. If something tries to enable something that\nwas previously disabled, a warning is produced in the log and the\nservice is not enabled.\n\nThen after all configuration has been sourced a final check is to\ndone by verify_disabled_services to confirm that something has not\nmanually adjusted ENABLED_SERVICES to overcome a previously called\ndisable_service. If something has, the stack dies with an error.\n\nChange-Id: I0f9403f44ed2fe693a46cd02486bd94043ce6b1a\nCloses-Bug: #1504304\n"
    },
    {
      "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": "e3fe3fd8389cf6b887e1f12ae0c4fe81e2b91ff6",
      "tree": "c1711cb8eaef0111bb4fb04e8654fc7ec5fe224a",
      "parents": [
        "c756b5b5d4665e8e0a3e16acb38f0f4e863d9cb5",
        "433a9b10ddd6fa67d7459c4943a92ce4f488cebc"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 08 11:45:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 08 11:45:17 2015 +0000"
      },
      "message": "Merge \"Don\u0027t set xtrace directly in local call\""
    },
    {
      "commit": "d111c2174e2f6c19975448f0271aa0c51e714624",
      "tree": "87d6b50eccd83011a2d7678d62c46d51988d0dae",
      "parents": [
        "ca9f00874af6323a2ad6d5f113873d37a747a1ac",
        "1de9e330de9fd509fcdbe04c4722951b3acf199c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 08 05:42:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 08 05:42:48 2015 +0000"
      },
      "message": "Merge \"add big warning for extras.d usage\""
    },
    {
      "commit": "17491f37d7163c069fe1cca46ae5d272c288d47a",
      "tree": "717470c49a29025d0180b2d565ff707d863c108b",
      "parents": [
        "0989cf9512ae827413bc13ba0856125b1bdac375",
        "050a0d5b304a013e23cd5909abf6e11b7dda5f18"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Oct 07 19:30:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 07 19:30:18 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Convert identity defaults to keystone v3 api\"\"\""
    },
    {
      "commit": "1de9e330de9fd509fcdbe04c4722951b3acf199c",
      "tree": "a2df114497927184dab66e623ce259258a6d3422",
      "parents": [
        "1e7be9f9eae83306ed2b4ad43d8532a2a010c50c"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Oct 07 08:46:13 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Oct 07 15:15:16 2015 -0400"
      },
      "message": "add big warning for extras.d usage\n\nThis adds a warning for extras.d usage. This will give us something to\nkeep an eye on in logstash to build up the list of projects that will\nbreak at Mitaka-1.\n\nThis also makes the deprecated handling done through a function, which\nwill hopefully make it more consistent in the future.\n\nChange-Id: Icd393bc3e7095fe58be0fd13ef74fece3aa5c5f1\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": "433a9b10ddd6fa67d7459c4943a92ce4f488cebc",
      "tree": "4db530838dadc2fc4e1e4ae4d37c6213f747919c",
      "parents": [
        "561137e88a513f1c1e1cc9f08b7d3bd909702282"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 13:29:31 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 16:54:29 2015 +1100"
      },
      "message": "Don\u0027t set xtrace directly in local call\n\nIa0957b47187c3dcadd46154b17022c4213781112 detects setting local\nvariables with subshell commands.\n\nAlthough this is a particuarly benign case, it trips the test.  Rather\nthan putting in an ignore for this, we can easily change it to make\nthe test pass.  This seems better than putting in special work-arounds\nto bashate, etc.\n\nChange-Id: I37c3967c0f2d780a636a7d26cda83755085c5c69\n"
    },
    {
      "commit": "ce7246a34ba51a5ccff0ac08d6e85a8cda7d275b",
      "tree": "b6f4bc2aa2337691750b50638de663955d709542",
      "parents": [
        "f4485bae9c719ee6b0c243cf5a69a6461df0bf23"
      ],
      "author": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Thu Apr 23 09:41:06 2015 -0700"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Oct 02 06:27:43 2015 -0400"
      },
      "message": "Workaround potential failure to shutdown services\n\nKill them twice to make sure they\u0027re good\u0027n\u0027dead. There is a supposed\nfix to oslo-incubator code, but we\u0027re working around that here in the\nmeantime with this change.\n\nThis returned in Liberty.\n\nChange-Id: I02a7af995dc7de857c4efcf2cef2f95d357c007a\nRelated-Bug: #1446583\n(cherry picked from commit 953baa7998f253681ed31013fd18bd8aa8098b34)\n"
    }
  ],
  "next": "050a0d5b304a013e23cd5909abf6e11b7dda5f18"
}
