)]}'
{
  "log": [
    {
      "commit": "52844a11dddb7e0631f9d11eb74251b17e05beb5",
      "tree": "fbebe33ed156559d0d4e43bbe21327836e66a6e8",
      "parents": [
        "7a0f6833ad75a61ddf60a1b34e8d7f080d29259e",
        "f750a6fedbb34399e1ee4dd540c13028d53c0e13"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 02 20:13:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 02 20:13:06 2015 +0000"
      },
      "message": "Merge \"Already dead process tolerance in unstack.sh\""
    },
    {
      "commit": "7a0f6833ad75a61ddf60a1b34e8d7f080d29259e",
      "tree": "2b81090e9a9c1e4c92cfe565a1be2463d3d4787c",
      "parents": [
        "fee742ba723bfb843a58881cb415b4e7991981c1",
        "37eca48970106abb9b982af4f1262bcb227411ea"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 02 20:09:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 02 20:09:05 2015 +0000"
      },
      "message": "Merge \"remove non RabbitMQ messaging\""
    },
    {
      "commit": "f750a6fedbb34399e1ee4dd540c13028d53c0e13",
      "tree": "839fca32e62cc71af1cb47d21c0ed4c91fcd7aad",
      "parents": [
        "85a1c488dfda0094238f899ea0bf693106021ce5"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Wed Jul 01 12:17:35 2015 +0200"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Wed Jul 01 12:17:35 2015 +0200"
      },
      "message": "Already dead process tolerance in unstack.sh\n\nThe gate/updown.sh calls the unstack.sh with\n-ex option. Normally we do not use -e with unstack.sh.\n\nThe unstack.sh can fail if the service already stopped,\nand it also can have flaky failures on the gate.\n\nFor example the stop_swift function tries to kill swift in two\ndifferent ways, and if the first one succeeds before the 2th attempt\nthe pkill fails the whole unstack.sh.\n\nThis change accepts kill failure.\nNormally the kill can fail if the process does not exits,\nor when you do not have permission to the kill operation.\n\nSince the permission issue is very unlikely in our case,\nthis change does not tries to distinguish the two operation.\n\nThe behavior of the unstack.sh wen you are not using -ex should\nnot be changed by this change.\n\nChange-Id: I64bf3cbe1b60c96f5b271dcfb620c3d4b50de26b\n"
    },
    {
      "commit": "7bc1f3c15fbf92da5fe9e15bf66a2d6b6648e449",
      "tree": "3f5fffe78d0a4c531d040a6ec0dcff0f542ec880",
      "parents": [
        "474172490f66588291e8c80f1ff4e94a41a16d42",
        "9d7e776b704d0fa54b2bf6543d054ab0118f5806"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jun 30 17:15:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jun 30 17:15:58 2015 +0000"
      },
      "message": "Merge \"Use Keystone v3 API for user creation\""
    },
    {
      "commit": "474172490f66588291e8c80f1ff4e94a41a16d42",
      "tree": "979a84e6ceeebac902c2c756f3afc289c97f9fb6",
      "parents": [
        "3a2fdb04ef7b0f2eae2c1139feb2d400c58d0ed6",
        "b632c9ef81090e210fee27346c6e1f2b4f3bedec"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jun 30 17:15:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jun 30 17:15:54 2015 +0000"
      },
      "message": "Merge \"Use keystone v3 API for projects\""
    },
    {
      "commit": "d014727c45db414b6e863f77916e7663ba5b425f",
      "tree": "93fbd8434734cd4f2879bcaa1ed2ffed728ac5bf",
      "parents": [
        "e439dbe9d454558726d0013becb957027ae98621",
        "f2a05497a3716b5eaa178b970d5cd2e6db865a97"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jun 30 16:55:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jun 30 16:55:31 2015 +0000"
      },
      "message": "Merge \"Drop no longer needed and broken check for cinder in is_service_enabled\""
    },
    {
      "commit": "f2a05497a3716b5eaa178b970d5cd2e6db865a97",
      "tree": "a00ec35b53c13dab18ffb8efda67dd94c8c0e96f",
      "parents": [
        "c782781a4ca5fc2671a6e5d188f68e99e7a656f4"
      ],
      "author": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Fri Jun 26 15:20:54 2015 +0200"
      },
      "committer": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Fri Jun 26 15:22:01 2015 +0200"
      },
      "message": "Drop no longer needed and broken check for cinder in is_service_enabled\n\nThere is properly working is_cinder_enabled now, and this check\nactualy matches ironic-inspector, breaking its devstack plugin.\n\nChange-Id: I659ec9b9b2b49690fd075f9766ae8cbf19e81848\nCloses-Bug: #1469160\n"
    },
    {
      "commit": "442e4e962559479fa0000ad64e6fa34da2c141c8",
      "tree": "abf23671f95d2e0931100e25706da8146d7d0287",
      "parents": [
        "c4067a3cc033eec0d6fa589718e35257c6bcae97"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Jun 24 13:24:02 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Jun 24 13:24:02 2015 -0400"
      },
      "message": "make test_with_retry a function\n\nWe have this pattern of timeout with while tests for a non infinite\nwhile loop condition. It\u0027s enough of a pattern that we should probably\nextract it into a function to make it more widely used.\n\nChange-Id: I11afcda9fac9709acf2f52d256d6e97644d4727c\n"
    },
    {
      "commit": "ee12f5f8863b02ae669faa2a42187dd8a1ba82ef",
      "tree": "a0a95bc7858ab9b8e221c6cd576c0e57ec6e2dce",
      "parents": [
        "0ad0bf4effdfd94f0fcc44c146a4fcfbca29b4b7",
        "6816234dc84b3e81a3de8745e84691d09123ba7f"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jun 19 05:29:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jun 19 05:29:39 2015 +0000"
      },
      "message": "Merge \"Save stackenv values more often\""
    },
    {
      "commit": "37eca48970106abb9b982af4f1262bcb227411ea",
      "tree": "fd0176e046c722d071a21007d260f518cccf8390",
      "parents": [
        "97c77b90e2064647b9968dd74fb378c584ece61f"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Jun 16 07:19:22 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Jun 16 08:28:52 2015 -0400"
      },
      "message": "remove non RabbitMQ messaging\n\nPart of what was decided at summit is devstack needs to return to a\nmore opinionated stance, the following removes support for non\nRabbitMQ messaging. RabbitMQ is used by over 95% of our community\n(statistically all of it), so it\u0027s a pretty clear line to draw that\nthis shouldn\u0027t be in tree.\n\niniset_rpc_backend will be our stable hook for other projects that\nwant to implement this out of tree. The burden on creating those out\nof tree plugins will be on those that wish to support those\nalternative stacks.\n\nChange-Id: I8073a895c03ec927a2598eff6c2f01e5c82606fc\n"
    },
    {
      "commit": "9d7e776b704d0fa54b2bf6543d054ab0118f5806",
      "tree": "b5a997e301de682866064a04fdcc74483051a3c2",
      "parents": [
        "b632c9ef81090e210fee27346c6e1f2b4f3bedec"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Fri May 29 01:08:53 2015 +0000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Tue Jun 16 10:06:39 2015 +0800"
      },
      "message": "Use Keystone v3 API for user creation\n\nThis includes requiring a domain when creating a user. This will allow us to\ncontrol where users are created in a later patch.\n\nAdding the token to the user creation call is required because of a bad\ninteraction between OpenStackClient, os-client-config and keystoneclient\nwhen dealing with v2 authentication but v3 API calls. It will be cleaned\nup when we switch to v3 credentials.\n\nChange-Id: I6ef50fd384d423bc0f13ee1016a8bdbb0650ecd9\nImplements: bp keystonev3\n"
    },
    {
      "commit": "b632c9ef81090e210fee27346c6e1f2b4f3bedec",
      "tree": "c1c81bbc49541d55a63ac433bafa2e49868edbb6",
      "parents": [
        "97c77b90e2064647b9968dd74fb378c584ece61f"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Thu May 28 23:36:15 2015 +0000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Tue Jun 16 08:38:09 2015 +0800"
      },
      "message": "Use keystone v3 API for projects\n\nAlways use the keystone v3 API for project creation. Make domain a\nrequired argument. Whilst we could simply default this value within the\nfunction I think it\u0027s better to make this explicit as these are things\ndeployers and services need to consider.\n\nIn future we will want to figure out how we want devstack to organize domains\nhowever I don\u0027t believe that it belongs in this patch.\n\nChange-Id: Ib9587193c5c8419dc4b5a608246709baaddd2a52\nImplements: bp keystonev3\n"
    },
    {
      "commit": "a858085afb46922760d9e89c34feb988ea283a54",
      "tree": "2de30ea793eb995d9d5c5a5392ebac93285ea6f7",
      "parents": [
        "493d3b3aff2dcc7c7458d4f70c9a23add6e70c74"
      ],
      "author": {
        "name": "Thomas Bechtold",
        "email": "tbechtold@suse.com",
        "time": "Sun May 31 00:04:33 2015 +0200"
      },
      "committer": {
        "name": "Thomas Bechtold",
        "email": "tbechtold@suse.com",
        "time": "Sun May 31 00:04:33 2015 +0200"
      },
      "message": "Simplify add_user_to_group function\n\nCurrent SLE12 and openSUSE13.X versions can handle usermod\u0027s \u0027-a\u0027 and \u0027-G\u0027\nswitches so remove the special case.\n\nChange-Id: If0f1390a0eb8f41ffffca74525a4648cfe8ea61d\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": "6816234dc84b3e81a3de8745e84691d09123ba7f",
      "tree": "7b3ed2ff5a8683025fba29e5b48302f5fd8d79c5",
      "parents": [
        "a79de45497dc4c9d388b698b939002d2857f0cc7"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed May 13 15:41:03 2015 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed May 13 15:54:10 2015 -0500"
      },
      "message": "Save stackenv values more often\n\nHaving these for debugging can be handy\n\nChange-Id: I18c2658eec83a0f20f697a3c4c36aa1cf46b7a92\n"
    },
    {
      "commit": "92619ddb61a36fcd1bfaac4b561e56bd5a39a229",
      "tree": "bb8625a6a87e5a13f4bfb9fdd0ceaf817ae9457b",
      "parents": [
        "1fa82aab6634bf815d162978e33b211e1fdef343",
        "3a2c86aabfa985dbdc998f02201649f49f3adab7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 13 11:41:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed May 13 11:41:06 2015 +0000"
      },
      "message": "Merge \"Add python_version function to functions-common\""
    },
    {
      "commit": "3a2c86aabfa985dbdc998f02201649f49f3adab7",
      "tree": "95096a8a4913a635bcfc015e7809da650aa8e88b",
      "parents": [
        "d5bcc42a71083eebf74d645a2bf1eb0c5367dea0"
      ],
      "author": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Tue May 12 13:41:25 2015 +0000"
      },
      "committer": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Tue May 12 18:30:31 2015 +0000"
      },
      "message": "Add python_version function to functions-common\n\nThis makes it possible to list virtual site-package directories\nwithout statically stating the python version, which is a bit ugly.\n\nChange-Id: I3e7ac39eb43cdc4f656e0c90f3bfb23545722aef\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": "6e137abbfe66837bc7456425472b53d067591d24",
      "tree": "3891816b03289d4ac48a32e71a5d894e132dce5b",
      "parents": [
        "43dcab990fe3c469f8042c37b176370ed95523a0"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Apr 29 08:22:24 2015 -0400"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon May 04 12:15:14 2015 +1000"
      },
      "message": "clean up logging around run_process\n\nWe do a bunch of exec magic unwind in run_process that leads to a lot\nof confusing lines in the logs under xtrace. Instead, disable xtrace\nthrough these parts to ensure that the flow at the end of the day\nmakes more sense.\n\nChange-Id: I91e02465240e704a1a0c0036f5073c0295be018e\n"
    },
    {
      "commit": "e4af92987a882dc2f7bb48527d0bcdbaa2427d4a",
      "tree": "3881e3d175d61f0db9930b61b46bed5e7da0931a",
      "parents": [
        "c9197f6c72039b6029dbe3858b78373d7f3aa96d"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 28 08:57:57 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 28 08:57:57 2015 -0400"
      },
      "message": "fix warn function\n\nThe warn function was putting content into a side log file which made\nit kind of hard to keep an eye on when warnings were actually being\nissued. Let\u0027s just get this into the main output stream.\n\nThe calling of the warn function in git_timed was also incorrect, so\nthe output would not have been what we expected. This solves that as\nwell.\n\nThis will hopefully give us trackable data about how often we need to\nrecover from git clone errors.\n\nChange-Id: Iee0d2df7fb788a4d34044d29ab10afdcafb9bb5a\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": "b28b27082c63bc701b4cad8f9c686ba2c1880e6e",
      "tree": "6e9ccd4ffc89a570be0f254a005bb0bd88171d2d",
      "parents": [
        "1235581559087974580c0e5f6e3ade82e9030a70"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Apr 16 08:43:43 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Apr 16 08:43:43 2015 +1000"
      },
      "message": "Append command to screenrc after we update it\n\nIf a group is specified we modify the command to run under \"sg\".  This\ncurrently isn\u0027t reflected in screenrc so rejoining fails\n\nChange-Id: I5c18ba664a6ae9ba9aaa4439a9086bc85085cd75\nCloses-Bug: #1444267\n"
    },
    {
      "commit": "4d7ee095a18af9e834202e92534d2ba7a0b371c5",
      "tree": "1f01fdd772aa14dd75a2550b9ba8c91655bd2cce",
      "parents": [
        "d1549d624dea9b00d7aa0f935759c69290e9ea17"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 07 10:40:49 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Apr 09 07:21:27 2015 -0400"
      },
      "message": "Make screen sleep time configurable\n\nthe sleep 3 in screen_it was added to make devstack pass in the gate\nwith exceptionally slow test cloud nodes. In the gate we now bypass\nthe screen path entirely. However the sleep 3 remains and can add a\ncouple minutes delay into local development runs.\n\nWe\u0027re not sure yet how low this can safely be tuned, so step 1 is to\nmake it configurable, then get devstack team members to try various\noptions to see what works.\n\nChange-Id: I0e6476176fc8589efc4e40e78c2231f704d14e45\n"
    },
    {
      "commit": "9942db6d87952032b852f425b51d5cc3bf57307b",
      "tree": "8466e2dab67994dbb5c81b54da6fc843efeb2e96",
      "parents": [
        "70843539a4ab2ed3c4b5d7042cc5ea717407e488",
        "4599fd174c0c10f3a7e51ad6cba5d4c74abac207"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Apr 03 16:18:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Apr 03 16:18:30 2015 +0000"
      },
      "message": "Merge \"Add roles when we create groups\""
    },
    {
      "commit": "d7c874bca6825441f3990733e7676201e7bc31e8",
      "tree": "d5f9b44fe80f3d07e69f16040052b69d2a1aa5c3",
      "parents": [
        "43479db9105db75d7762e9cfbc950841725fa644",
        "1bd79596c3c5f62cbbef92558156401447a9b5d3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Mar 30 15:05:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Mar 30 15:05:59 2015 +0000"
      },
      "message": "Merge \"Move back isset to the functions-common\""
    },
    {
      "commit": "dc97cb71e85fc807d2cce6f054c785922d322eb9",
      "tree": "86affcfbc7054c209c2ab0a4c3f7955d5e1bf16f",
      "parents": [
        "9720239618189c13734aa32aabee9252707f2db9"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Mar 28 08:20:50 2015 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Mar 28 14:35:12 2015 -0500"
      },
      "message": "Mostly docs cleanups\n\nFix documentation build errors and RST formatting\n\nChange-Id: Id93153400c5b069dd9d772381558c7085f64c207\n"
    },
    {
      "commit": "41d6f858be8431975762e65db470929c72b8f2a8",
      "tree": "611ecdd011df3c3ab60bfcc71281656f48767d00",
      "parents": [
        "c392fd3b5fd5464d87e514c173e4a5091d412caf"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Mar 25 22:42:46 2015 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Mar 26 15:36:23 2015 -0500"
      },
      "message": "Clean up additional INSTALL_TESTONLY_PACKAGES bits\n\nThe original removal is in https://review.openstack.org/#/c/167669/\n\nChange-Id: I3c59f040523d2cd1453465e80280955218880634\n"
    },
    {
      "commit": "6e275e170c042794560c9b2c442a32c3de55566e",
      "tree": "979948aa709f7f10766fd0b024e3eb0faa40768e",
      "parents": [
        "4cc060e77c58882f9728c2515e65d205d0e969dd"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Mar 26 05:54:28 2015 -0400"
      },
      "committer": {
        "name": "Bharat Kumar Kobagana",
        "email": "bharat.kobagana@redhat.com",
        "time": "Thu Mar 26 20:50:11 2015 +0530"
      },
      "message": "provide an override-defaults phase\n\nduring the glusterfs integration it was seen that plugins might need\nto set new defaults on projects before the project files load. Create\na new override-defaults phase for that.\n\nIntentionally not adding to the documentation yet until we\u0027re sure\nthis works right in the glusterfs case.\n\nReported-By: Deepak C Shetty \u003cdeepakcs@redhat.com\u003e\nChange-Id: I13c961b19bdcc1a99e9a7068fe91bbaac787e948\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": "eeb7bda510ad29dce7bfc5eb8aed9b6fe25efea1",
      "tree": "550e2caaef10ce56f5bf96277c3293c05e969ea7",
      "parents": [
        "b23054c4b42b1c4ef8b0cdb642e63eac2a91a3f5"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Mar 25 11:55:32 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Mar 25 11:55:32 2015 -0400"
      },
      "message": "eliminate TEST_ONLY differentiation\n\ndevstack is a development and test environment, but by default we were\nonly installing the runtime dependencies. We should install all the\ntesting required packages as well.\n\nChange-Id: I7c95927b9daad15766aac9d1276b10ca62efb24c\n"
    },
    {
      "commit": "1b8c4678cd9a363297efcac15313eefdee8ebd8c",
      "tree": "5456dffe0ec13bb9769d24f963671d0fb267a4f4",
      "parents": [
        "e467cdfeb186f6afad742f25e5dc8db117524942",
        "ec47bc1d720852ca07f1af2143c2a6c1353e9306"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Mar 23 23:08:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Mar 23 23:08:55 2015 +0000"
      },
      "message": "Merge \"Add support for Oracle Linux 7 and later.\""
    },
    {
      "commit": "ec47bc1d720852ca07f1af2143c2a6c1353e9306",
      "tree": "5f334888c4222e270b190919b5a71997778c1372",
      "parents": [
        "d9a7ae8056a253a9f3f50aa1225e7fda6f1a595a"
      ],
      "author": {
        "name": "Wiekus Beukes",
        "email": "wiekus.beukes@oracle.com",
        "time": "Thu Mar 19 08:20:38 2015 -0700"
      },
      "committer": {
        "name": "Wiekus Beukes",
        "email": "wiekus.beukes@oracle.com",
        "time": "Sun Mar 22 21:28:35 2015 -0700"
      },
      "message": "Add support for Oracle Linux 7 and later.\n\nMost of the changes revolves around using MySQL rather than MariaDB,\nplus enabling the addon repos on public-yum.oracle.com.\nThe patch just touch the areas where there is a divergence between the\nFedora and Oracle distributions and in all other cases the is_fedora\nwill result in the correct decision to be made and left as is.\n\nCollapsed the is_suse and is_oraclelinux into a single check in\nconfigure_database_mysql and cleanup_database_mysql\n\nAdded Oracle Linux to MAINTAINERS.rst\n\nRather than duplicating most of the Redhat version check code, added\na check in the block to do the determination if it is Oracle Linux\n\nChange-Id: I5f1f15106329eec67aa008b17847fa44863f243f\n"
    },
    {
      "commit": "597fd75f4178d2179dedef10af3f5dda2994b76c",
      "tree": "640a6c54c0e2c665f7996ec566ecab55fb73c7ea",
      "parents": [
        "889d76b4cf1b465386b1aa6653218fc6bebe2493",
        "fdf00f27db19f572ac1d8fd3714c5b412556dbf3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 20 14:29:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 20 14:29:54 2015 +0000"
      },
      "message": "Merge \"Add defaults for yum proxy variables\""
    },
    {
      "commit": "6f3f310848d1134ff73dd23e246ad00f7cd13365",
      "tree": "74459e319eb613b3a78534773df41192e10c06cf",
      "parents": [
        "d4c95233d6ff9111ebd76888516c94e0899aec28"
      ],
      "author": {
        "name": "Ryan Hsu",
        "email": "rhsu@vmware.com",
        "time": "Thu Mar 19 16:26:45 2015 -0700"
      },
      "committer": {
        "name": "Ryan Hsu",
        "email": "rhsu@vmware.com",
        "time": "Thu Mar 19 16:32:24 2015 -0700"
      },
      "message": "Fix packages not getting installed if service name in base path\n\nCurrently, if devstack base path includes the name of a given\nservice (e.g. nova), then the service\u0027s prereq packages will\nnot be installed. This fix changes the checking the match\nagainst the full path of the package list file rather than the\nname of a given service.\n\nCloses-Bug: #1434314\nChange-Id: Ie81352ebd5691afc6d0019f71d5b62370e8bb95f\n"
    },
    {
      "commit": "d4c95233d6ff9111ebd76888516c94e0899aec28",
      "tree": "41c22e6ae68f6040a0cd68f222486e045110f1ca",
      "parents": [
        "948970928cdb0bc550c4f486ec61537202680a3b",
        "f26deea6b1d7a91da44979d8c7feaf1ff8970b25"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Mar 19 18:22:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Mar 19 18:22:51 2015 +0000"
      },
      "message": "Merge \"create install_default_policy\""
    },
    {
      "commit": "f26deea6b1d7a91da44979d8c7feaf1ff8970b25",
      "tree": "51bdbe570b8fd4160969c7762f554e61a4658199",
      "parents": [
        "c8b2f60a54dc0f5d008752842781bc61078b1ca9"
      ],
      "author": {
        "name": "yuntongjin",
        "email": "yuntongjin@gmail.com",
        "time": "Sat Feb 28 10:50:34 2015 +0800"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Mar 19 09:10:37 2015 -0400"
      },
      "message": "create install_default_policy\n\nRecent versions of oslo policy allow the use of a policy.d to break up\npolicy in a more user understandable way. Nova is going to use this in\nKilo to break out v2 and v2.1 API policy definitions.\n\nThis provides a unified helper for installing sample policies. It\nmakes some assumptions on project directory structure. Porting other\nprojects to use this can happen in the future.\n\nChange-Id: Iec23b095176332414faf76a9c329f8bb5f3aa6c3\n"
    },
    {
      "commit": "4599fd174c0c10f3a7e51ad6cba5d4c74abac207",
      "tree": "11179f93e0f88054534f8b475aa2ad482530a69a",
      "parents": [
        "5e159edab375ed950cc5c91a6c445bbc5541b3c1"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Thu Mar 12 21:30:58 2015 -0400"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Thu Mar 19 00:59:47 2015 -0400"
      },
      "message": "Add roles when we create groups\n\nWe should prime the groups that were created with some roles on\nprojects. Eventually we can add users directly to the groups\nand not have to resort to individual user assignments.\n\nChange-Id: Icebafc06859f8879c584cfd67aa51cb0c9ce48af\n"
    },
    {
      "commit": "d9a7ae8056a253a9f3f50aa1225e7fda6f1a595a",
      "tree": "712c852129a78f0ac93cbf516c6eb443204b92ce",
      "parents": [
        "aea87e2dc29fabffb16c9c6c4ce3079d30ca4423",
        "7ca90cded374685c8c68ea50381220b915eb0b63"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Mar 19 00:35:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Mar 19 00:35:34 2015 +0000"
      },
      "message": "Merge \"Allow devstack plugins to specify prereq packages\""
    },
    {
      "commit": "fdf00f27db19f572ac1d8fd3714c5b412556dbf3",
      "tree": "98eb0db9a2d0dbe1e4c7cce28b704e4461ea26b2",
      "parents": [
        "518ca616aea969612d6ea3301a714c489a8b4885"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Mar 13 11:50:02 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Mar 18 09:26:15 2015 +1100"
      },
      "message": "Add defaults for yum proxy variables\n\nWithout these defaults, sourcing functions-common with -u turned on\n(as say ./tools/build_wheels.sh does) will bail out with unset\nvariable errors.  Also fix up quoting, and add no_proxy for zypper run\n\nChange-Id: Ideb441634243c1c5ce7db3a375c2d98617e9d1dc\n"
    },
    {
      "commit": "a3430270f3b652317a85c9eabe76962bd64f4543",
      "tree": "6f30660d886f4555b3cbbdf6bf3301f54f80fb0b",
      "parents": [
        "5c619b43dbd9a649cc7bad3f8527c8b9ded1d631"
      ],
      "author": {
        "name": "Andreas Scheuring",
        "email": "andreas.scheuring@de.ibm.com",
        "time": "Mon Mar 09 16:55:32 2015 +0100"
      },
      "committer": {
        "name": "Andreas Scheuring",
        "email": "andreas.scheuring@de.ibm.com",
        "time": "Mon Mar 16 17:00:03 2015 +0100"
      },
      "message": "Support detection of interfaces with non-word chars in the name\n\nThe current regex only matches host interface names that consits\nof \"word characters\" (regex \\w). Intefaces having other special\nchars like \"-\" or \".\" are not parsed. Examples that are not yet\nmatched are br-ex (ovs bridge) or enccw0.0.1234 (s390 eth device\nname).\n\nIn addition it\u0027s hard to understand the the regex.\n\nThis fix is replacing the regex by a simple awk statement also\nmatching those names.\n\nIn addition the determination of the host_ip_iface was moved\ndown into the if clause, as it is only used inside.\n\nChange-Id: I3d1b1afa32956e4e8c55c7e68cbafaf8e03e7da2\nCloses-Bug: #1429903\n"
    },
    {
      "commit": "7ca90cded374685c8c68ea50381220b915eb0b63",
      "tree": "9d31ff411cbd1e2b81d0063e533e6e8775a08853",
      "parents": [
        "cfbf8a165956b0c6b0c921d5486295d7c923310a"
      ],
      "author": {
        "name": "Adam Gandelman",
        "email": "adamg@ubuntu.com",
        "time": "Wed Mar 04 17:25:07 2015 -0800"
      },
      "committer": {
        "name": "Adam Gandelman",
        "email": "adamg@ubuntu.com",
        "time": "Wed Mar 11 14:46:35 2015 -0700"
      },
      "message": "Allow devstack plugins to specify prereq packages\n\nWe offer main devstack components the ability to install their own\nsystem package preqreqs via files/{debs, rpms}/$service.  This adds\nsimilar functionality for plugins, who can now do the same in their\nown tree at ./devstack/files/{debs, rpms}/$plugin.\n\nChange-Id: I63af8dc54c75a6e80ca4b2a96c76233a0795aabb\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": "93e682c558f954fa35a00d7cc6a6903e8ed59178",
      "tree": "c7f057b6d3d110e01d2da4e4a4f46dc077cac2a3",
      "parents": [
        "aff8fb9be8b48d6f05f4e00561f714346befc846"
      ],
      "author": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Tue Mar 03 10:31:30 2015 -0700"
      },
      "committer": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Tue Mar 03 10:31:30 2015 -0700"
      },
      "message": "Revert change to remove lbaas from devstack; it breaks grenade.\n\nChange-Id: Ie2adaeb7f27d6d646ca2e6e575fb430b9b74b276\n"
    },
    {
      "commit": "b124f4d595cc41b4f20bf935ffd0848448b3713c",
      "tree": "bd9675f86318038a0bd2a57a057ca7cb68ef3a16",
      "parents": [
        "172fae6a3ebf867663525048947c797c9209f3eb"
      ],
      "author": {
        "name": "Al Miller",
        "email": "al.miller@hp.com",
        "time": "Tue Feb 03 20:18:42 2015 -0800"
      },
      "committer": {
        "name": "Al Miller",
        "email": "al.miller@ajmiller.net",
        "time": "Fri Feb 27 16:36:51 2015 +0000"
      },
      "message": "Remove LBaaS support from devstack\n\nDevstack support for LBaaS is being migrated to an external\nplugin in the neutron-lbaas repository.  The only LBaaS-\nspecific code that remains in devstack is a hook to support\nexisting configs that enable q-lbaas.  In that case, load\nthe external plugin if necessary.\n\nChange-Id: I592f64407ccf1e722b8d9788917879d0236acf0b\nDepends-On: I64a94aeeabe6357b5ea7796e34c9306c55c9ae67\n"
    },
    {
      "commit": "7591be546695da7532432a24f649907aa2c83ead",
      "tree": "91797c100973bd99033cf7b68ca3e208deebbdc6",
      "parents": [
        "20585f5b232c000cddb322771f49b89975f0e551",
        "9d09f0980285b5b5d5ccf3865cab1c5df49b25d5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 19 01:11:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 19 01:11:54 2015 +0000"
      },
      "message": "Merge \"Remove is_rackspace function from functions-common\""
    },
    {
      "commit": "5ce44cd63b6e2b53f08a6b4b87cb4ab11d1ade26",
      "tree": "5f396699c97e2df46b99bc46443f1db9bc3d7955",
      "parents": [
        "2b564763aafe6466f42bc5cf2ccc47ddf4169986"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Feb 12 22:18:33 2015 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 16 10:52:18 2015 -0600"
      },
      "message": "Fix is_keystone_enabled()\n\nis_keystone_enabled() was calling is_service_enabled(), which is what called\nis_keystone_enabled() in the first place.  Make it work as designed and\nalso change calls to use the full service name.  Note that this is all\nstill comptible with the prior usage of \u0027is_service_enabled key\u0027.\n\nChange-Id: I9c28377ecf074b7996461d2a4ca12d88dfc4d47e\n"
    },
    {
      "commit": "9b215db569dcee2e9cd52c3336ba14b73ad05ab0",
      "tree": "165ec0b1d4d9138a5ee794068a368e06011e06e0",
      "parents": [
        "8ed3e40be8672aa23ebd2b6c95accf06a2ff8ac4"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Tue Feb 10 18:19:57 2015 +1100"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Wed Feb 11 14:51:22 2015 +1100"
      },
      "message": "Rename get_or_add_user_role\n\nget_or_add_user_role is specific to adding a role on a project.\nRename it to get_or_add_user_project_role to allow room for adding a\ndomain specific role function.\n\nChange-Id: I999308098d22be9800578ae67144a3b687fbc3be\n"
    },
    {
      "commit": "3273b6d280e2b6edd5dc3e4ba089afb5025e408a",
      "tree": "ee750219375baaee2751afee08a6cffab9296c21",
      "parents": [
        "f9222da73fa52b389f38521ea4df553c562cd798",
        "490430dbe3b7d9979b4623f2c327bb0a74436401"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Feb 06 20:45:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Feb 06 20:45:45 2015 +0000"
      },
      "message": "Merge \"Split functions-common: python functions\""
    },
    {
      "commit": "e79678af5ed1621cd8740879b496a0d3716ab8b1",
      "tree": "8d89cedb7c4d249e305803f4c9f8ef8449132e9a",
      "parents": [
        "70157976aec6adf26ac0b3734d2017e2356efd75",
        "18f39bfb1f6af23a7fc5f5a5b822e7216ce9ec62"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Feb 06 16:16:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Feb 06 16:16:36 2015 +0000"
      },
      "message": "Merge \"Remove the default project from all users\""
    },
    {
      "commit": "d7be20853b74a8cf5d2fceafdd32745c1689f4d9",
      "tree": "a076d146b45e2cf22cc922b629eae3a821f3c7dd",
      "parents": [
        "8458b458a0d9848e07420cc9074cd925315ed9e1",
        "36298eec001f900c00a8ac89143375620af9ce3e"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 05 13:40:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 05 13:40:00 2015 +0000"
      },
      "message": "Merge \"Add default for YUM\""
    },
    {
      "commit": "36298eec001f900c00a8ac89143375620af9ce3e",
      "tree": "1a8c367679da4e82414a807bc3a71c0a2b3e8b37",
      "parents": [
        "18e0a335b65e50af5bade16176a955775b6dc372"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Feb 04 10:29:31 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Feb 04 10:29:31 2015 +1100"
      },
      "message": "Add default for YUM\n\nThis allows tools/* to use install_packages, etc, without having to\npull in stackrc for the $YUM definition.  Alternative to\nIef944af1ab177638bf818624a216751821e6330b\n\nChange-Id: I7fe37079240e8cabbdffdcae5ad9d21e122e43c2\n"
    },
    {
      "commit": "490430dbe3b7d9979b4623f2c327bb0a74436401",
      "tree": "527289f426c49bb51234a1e0621a0afe1ffac20e",
      "parents": [
        "a1b82cc1b5a7172c3fdf17d2c3f0725660911ad7"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 30 14:38:35 2015 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 30 14:59:48 2015 -0600"
      },
      "message": "Split functions-common: python functions\n\nMove Python-related functions into inc/python\n\nShould be transparent to all callers as it is sourced from functions-common\n\nChange-Id: I88043830cef9211b4e0baa91bfcc7a92125afa9f\n"
    },
    {
      "commit": "a1b82cc1b5a7172c3fdf17d2c3f0725660911ad7",
      "tree": "984ba9c6175f3f8d3a6d4368b77cef393a8d0a8c",
      "parents": [
        "b9a7d3b5e4f01d932709633f2b5b9461ecdbd0cb"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 30 13:54:40 2015 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 30 14:59:40 2015 -0600"
      },
      "message": "Fix unbound literal in trueorfalse()\n\nChange-Id: I4c465819c311604e97d24e081389ff531f8a42fa\n"
    },
    {
      "commit": "36b13f58cfc2ddc286d96e4aa45d565c97ab5990",
      "tree": "48f9d8e9dbfba157c70fe9f0100cac36b59d3c2a",
      "parents": [
        "d31b05cc7c052707eb21afa9d813681d457535d8",
        "dde41d0797f0b085099cd5c9ff1e0110d5ae3fbd"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jan 29 05:57:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jan 29 05:57:19 2015 +0000"
      },
      "message": "Merge \"Deprecate SCREEN_LOGDIR in favor of LOGDIR\""
    },
    {
      "commit": "18f39bfb1f6af23a7fc5f5a5b822e7216ce9ec62",
      "tree": "7d129d3e5a087f1d819f19282cd3978e051bd936",
      "parents": [
        "c2999d190a0ce92a99332a9733b2e43828a6201c"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Wed Jan 28 13:38:32 2015 +1000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Wed Jan 28 13:38:32 2015 +1000"
      },
      "message": "Remove the default project from all users\n\nThe default project means that a user gains token scoping information\nfor a project if they don\u0027t specify another. This is something we want\nto discourage for user creation. User\u0027s should specify there own\nauthentication scope when they authenticate.\n\nChange-Id: I42c3060d59edfcd44d04cd166bad500419dd99bc\n"
    },
    {
      "commit": "a6d567fae017a025a7b5f250f947c0d113892879",
      "tree": "d7e8840cfaef0d61b32a1c12da967437897fcb0b",
      "parents": [
        "b3e38cf295c87af043ae25b1546d3bde50b90a42",
        "789af5ccfa49e40eabe1454e9e2d31bd6c6f0ef8"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jan 21 08:12:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jan 21 08:12:34 2015 +0000"
      },
      "message": "Merge \"Update osc server create to have type as positional arg\""
    },
    {
      "commit": "dde41d0797f0b085099cd5c9ff1e0110d5ae3fbd",
      "tree": "61e097d1a0e501b381d41f99681c755b8ca77bd8",
      "parents": [
        "9e84d095f2fc5549186097f00c678f916941bf69"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Dec 09 17:47:57 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Jan 20 16:08:22 2015 -0600"
      },
      "message": "Deprecate SCREEN_LOGDIR in favor of LOGDIR\n\nThis is the first step in the log file cleanup.  If SCREEN_LOGDIR\nis still set, symlinks will be created in the old screen log directory\nso things like the devstack-gate log collector continues to work.\n\nbp:logging-and-service-names\nChange-Id: I3ac796e322a18dbd0b8b2310a08310ca159d7613\n"
    },
    {
      "commit": "4f154070e4688f60d88b4807822e481d36a009f7",
      "tree": "754b1d7132e151b95dbf2d573b1af699abd00cb7",
      "parents": [
        "46d4769f8c81dbf4d82025f383dbdf38d5eadbc5",
        "59d52f307b8fee53c29cda803ba3d1848ef91a8b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 20 17:55:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 20 17:55:50 2015 +0000"
      },
      "message": "Merge \"Disable shallow cloning with GIT_DEPTH\u003d0\""
    },
    {
      "commit": "46d4769f8c81dbf4d82025f383dbdf38d5eadbc5",
      "tree": "bb561e17b7fda621bc98b7b3396b38a25693fc1b",
      "parents": [
        "b73f1c1592f6cbb8aa8977166e4c510a9c08f28b",
        "5541a618de890ec721c375506057eeb6cb7a5a63"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 20 16:10:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 20 16:10:40 2015 +0000"
      },
      "message": "Merge \"Use `os role list` instead of `os user role list`\""
    },
    {
      "commit": "59d52f307b8fee53c29cda803ba3d1848ef91a8b",
      "tree": "686447d6ea64c24851000bc0b1d707c1362cd3ba",
      "parents": [
        "62002dd88b7909ac249face4243e1aae03745a01"
      ],
      "author": {
        "name": "Kevin Benton",
        "email": "blak111@gmail.com",
        "time": "Sat Jan 17 11:29:12 2015 -0800"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Jan 20 09:35:34 2015 -0500"
      },
      "message": "Disable shallow cloning with GIT_DEPTH\u003d0\n\nThe recent patch to enable shallow cloning added a method to skip\nit by checking if GIT_DEPTH was null. However, this could never\nbe triggered because if the user specified it as null, the default\nsetting code would take over and set it to 1.\n\nThis patch allows the user to specify GIT_DEPTH\u003d0 to skip the\nshallow clone.\n\nChange-Id: I00ea7ab54ed51dc3ede9ceb9ff0f11575a035d1c\n"
    },
    {
      "commit": "256b8234a911d9fd1a44be5aa35b65df25062930",
      "tree": "cd302ba282fa4ab0387948332f1c1fe51a757634",
      "parents": [
        "62002dd88b7909ac249face4243e1aae03745a01",
        "ad5cc986d86e9deff506c0451409f26fc8e86efe"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 20 14:24:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 20 14:24:00 2015 +0000"
      },
      "message": "Merge \"Rename screen logfiles\""
    },
    {
      "commit": "789af5ccfa49e40eabe1454e9e2d31bd6c6f0ef8",
      "tree": "b56d8654cc92b5bdb0ea410f0ef687918db04318",
      "parents": [
        "62002dd88b7909ac249face4243e1aae03745a01"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Mon Jan 19 16:11:44 2015 -0500"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Mon Jan 19 16:11:44 2015 -0500"
      },
      "message": "Update osc server create to have type as positional arg\n\nIn Keystone, for v2 and v3 service creation, there was a bug that\nallowed a service to be created with no type, which made it useless.\n\nSee reference bug for details.\n\nChange-Id: I5d095007fe2ebc8219dc012c5b16cb4c122179cd\nRelated-Bug: #1404073\n"
    },
    {
      "commit": "5541a618de890ec721c375506057eeb6cb7a5a63",
      "tree": "b0d295ec2fbb6942d58c74acb5a923fe915d1c02",
      "parents": [
        "62002dd88b7909ac249face4243e1aae03745a01"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Mon Jan 19 15:58:49 2015 -0500"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Mon Jan 19 15:58:49 2015 -0500"
      },
      "message": "Use `os role list` instead of `os user role list`\n\nSince `os user role list` is being deprecated, we should start\nmigrating to `os role list`, which now has the required ability\nto list a users role on a project as of v1.0.2 of osc.\n\nChange-Id: I3fa8bf8f1feaac16e1cde5c55b1be00b92eaa5f6\n"
    },
    {
      "commit": "ca5b5485d9be07a6f9e57440901dc612889071c0",
      "tree": "5973d08b5d8ae66ce814a8a90a056ebdec324cb5",
      "parents": [
        "c34cb7b5ef3e6a87b1931f779e11648df2b7144c",
        "537532931da4103e1a873684476dac6d7fe56489"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jan 17 17:45:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jan 17 17:45:29 2015 +0000"
      },
      "message": "Merge \"Make changes such that -o nounset runs\""
    },
    {
      "commit": "c34cb7b5ef3e6a87b1931f779e11648df2b7144c",
      "tree": "6aa1e35447aac3ab4c19b7f2e6f9e6c6c57b8730",
      "parents": [
        "116f9f826effd3682c8b70cde8550727161c3384",
        "b74e01c34de76cb451f80d2f1ac1c4ccac1bb7e4"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jan 17 06:03:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jan 17 06:03:07 2015 +0000"
      },
      "message": "Merge \"Add a group create function, and a sample group\""
    },
    {
      "commit": "ad5cc986d86e9deff506c0451409f26fc8e86efe",
      "tree": "58ba49325e93574a35f98010414bccc0740b738c",
      "parents": [
        "116f9f826effd3682c8b70cde8550727161c3384"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Dec 10 16:35:32 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 16 13:58:25 2015 -0600"
      },
      "message": "Rename screen logfiles\n\nThis renames the log files in logs/screen that contain timestamps to put\nthe timestamp after \u0027.log\u0027 and \u0027.log.summary\u0027 in the names.  This will\nsimplify devstack-gate\u0027s search for log files to copy to \u0027*.log\u0027.\n\ndstat.txt is also renamed to dstat.log\n\nMake LOGDIR and LOGFILE local\n\nbp:devstack-logging-and-service-names\nChange-Id: I02aba9ca82c117a1186dafc1d3c07aa04ecd1dde\n"
    },
    {
      "commit": "537532931da4103e1a873684476dac6d7fe56489",
      "tree": "e35fe8f6032774a831ccfbf2a4d72a68654bbb38",
      "parents": [
        "5f6f43ed9f67a86cad03c1d0c673429814467d6d"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Dec 04 19:38:15 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Jan 15 13:06:14 2015 -0500"
      },
      "message": "Make changes such that -o nounset runs\n\nThis makes a bunch of variable cleanups that will let -o nounset\nfunction, for the time being we hide nounset behind another setting\nvariable so that it\u0027s not on by default.\n\nBecause this is bash, and things are only executed on demand, this\nprobably only works in the config it was run in. Expect cleaning up\nall the paths to be something that takes quite a while.\n\nThis also includes a new set of unit tests around the trueorfalse\nfunction, because my change in how it worked, didn\u0027t. Tests are good\nm\u0027kay.\n\nChange-Id: I71a896623ea9e1f042a73dc0678ce85acf0dc87d\n"
    },
    {
      "commit": "b74e01c34de76cb451f80d2f1ac1c4ccac1bb7e4",
      "tree": "c0c72cd9c194db806f40b7d4aecbbcd8b81c47f3",
      "parents": [
        "3eaa0781e3d87bee6d343573954b682f1f23d4b9"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Thu Dec 18 01:35:35 2014 -0500"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Wed Jan 14 14:37:13 2015 -0500"
      },
      "message": "Add a group create function, and a sample group\n\nSlowly trying to introduce more v3 concepts into a generic\ndevstack installation.\n\nWork with description of none and description with spaces\n\nChange-Id: I7d2fde58363698ff020f92f129f1ff7378f945a8\n"
    },
    {
      "commit": "b31f4cc3e5696a9328a341c2b3588da95d024931",
      "tree": "61b1554fd675692cc0fc5c20ace096fbc0191953",
      "parents": [
        "07e329875b2a1295459bf07438b3b4ef18b7cae8",
        "6ce071b796d7bbf851df225ca7097d2de26b3456"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 13 23:05:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 13 23:05:46 2015 +0000"
      },
      "message": "Merge \"Depreciated pip option PIP_DOWNLOAD_CACHE removal\""
    },
    {
      "commit": "6ce071b796d7bbf851df225ca7097d2de26b3456",
      "tree": "cd3972c7bf9f09a2082ebb75541b9436e00102e7",
      "parents": [
        "fe2f9868164d169c4170cc41285247dd20a39092"
      ],
      "author": {
        "name": "Radoslaw Smigielski",
        "email": "radoslaw.smigielski@alcatel-lucent.com",
        "time": "Tue Jan 13 06:29:31 2015 +0000"
      },
      "committer": {
        "name": "Radoslaw Smigielski",
        "email": "radoslaw.smigielski@alcatel-lucent.com",
        "time": "Tue Jan 13 06:29:31 2015 +0000"
      },
      "message": "Depreciated pip option PIP_DOWNLOAD_CACHE removal\n\nFix warning:\nDEPRECATION: --download-cache has been deprecated and will be removed in the\nfuture. Pip now automatically uses and configures its cache.\n\n1. Since version 6.0 (2014-12-22) pip has deprecated PIP_DOWNLOAD_CACHE\n   and now automatically uses and configures its cache.\n   Default new location is $HOME/.cache/pip.\n2. pip gets upgraded to the latest version in tools/install_pip.sh\n   but if pip version\u003c6, exit with error: \"Currently installed pip version\n   ${pip_version} does not meet meet minimum requirements\"\n\nChange-Id: I8b203ffc6d9cf588462d0d65a9703a9941d8fa71\n"
    },
    {
      "commit": "13519e8a5b8bb9141ecff09f5273d5c2896a8082",
      "tree": "e9a890f861a4daefe6ba1728e35832227159da12",
      "parents": [
        "441ff07b97b4d44a25479912ff2878be3fa6e9a9"
      ],
      "author": {
        "name": "Maru Newby",
        "email": "marun@redhat.com",
        "time": "Fri Jan 09 13:06:56 2015 +0000"
      },
      "committer": {
        "name": "Maru Newby",
        "email": "marun@redhat.com",
        "time": "Fri Jan 09 13:06:56 2015 +0000"
      },
      "message": "Fix get_packages when $DISTRO is not set\n\nSourcing the tools/install-prereqs.sh script with TOP_DIR set results\nin GetDistro being called in get_packages and echoing the result.\nSince all output from get_packages is assumed to be package names,\nthis results in the attempted installation of the non-existant \u0027Found\u0027\n\u0027Distro\u0027 and \u0027[distro name]\u0027 packages.  This change removes the echo\nstatement to avoid this problem.\n\nChange-Id: Idd05c31b9eec9e6209666fa16fa425cdf1f35aa2\n"
    },
    {
      "commit": "441ff07b97b4d44a25479912ff2878be3fa6e9a9",
      "tree": "33b3d529eadce2d067363913528fbab6e8efe5e5",
      "parents": [
        "29e34f7c9fe78a2914da1c8e1631750dd9b4d42b"
      ],
      "author": {
        "name": "Bharat Kumar Kobagana",
        "email": "bharat.kobagana@redhat.com",
        "time": "Thu Jan 08 12:26:26 2015 +0530"
      },
      "committer": {
        "name": "Bharat Kumar Kobagana",
        "email": "bharat.kobagana@redhat.com",
        "time": "Thu Jan 08 12:26:30 2015 +0530"
      },
      "message": "Fixing the problem in loading plugins\n\nThis patch fixes the problem in loading the plugins in devstack\nby defining the \"plugins\" variable in \"run_plugins\" function of\ndevstack/functions-common file.\n\nChange-Id: I9fb0e24bf1fd282931a8489e0a8ec0c9ea078520\nCloses-Bug: 1408571\n"
    },
    {
      "commit": "c7acc12ad2d1348e2da075fad923811e19efa9d1",
      "tree": "60280f210f0643a555440a16ab1e46561e7b4ffc",
      "parents": [
        "9cedfcfda23445aadb866f40b0aafdde533cec9a",
        "1f65fd64ce2f4ed32a706f9bcb28c2ee0cf51e5b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jan 07 22:32:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jan 07 22:32:15 2015 +0000"
      },
      "message": "Merge \"Clear multi-line sections before adding lines\""
    },
    {
      "commit": "9cedfcfda23445aadb866f40b0aafdde533cec9a",
      "tree": "ab63ed021e3fd78bb79f722f4bbfaaa88fc5305a",
      "parents": [
        "a6613851abacbfaad48d51a4de41e9b5e077e24c",
        "2c65e71ab85a6271818048f79541e9b269566df5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jan 07 18:11:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jan 07 18:11:07 2015 +0000"
      },
      "message": "Merge \"Implement devstack external plugins\""
    },
    {
      "commit": "2c65e71ab85a6271818048f79541e9b269566df5",
      "tree": "ef8721cc25ec6f4736ea62a058d5c3556bbf510d",
      "parents": [
        "7d6df5225bafaf77137aaa69f8fecd1286491b36"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Dec 18 09:44:56 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Jan 06 12:30:25 2015 -0500"
      },
      "message": "Implement devstack external plugins\n\nThis is an initial pass at plugin infrastructure for devstack which\nallows specifying an external repository via:\n\nenable_plugin \u003cname\u003e \u003cgiturl\u003e [branch]\n\nIt implements the devstack specification for this at\nI173dee3d57967b1d2ffd30e4868a2832aeac97ce\n\nChange-Id: I8e4175313b3cf0b12e981122358b1288a7eb0746\n"
    },
    {
      "commit": "6ec66bb3d1354062ec70be972dba990e886084d5",
      "tree": "58c0c952d2bc6463b7d8b9f7dc9757ebd20e4d13",
      "parents": [
        "e92eee3e2646ae98b3d9e9005c67663b29e79ca1"
      ],
      "author": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Mon Dec 22 17:17:51 2014 +0000"
      },
      "committer": {
        "name": "Jeremy Stanley",
        "email": "fungi@yuggoth.org",
        "time": "Tue Dec 23 01:05:42 2014 +0000"
      },
      "message": "Install prettytable\u003e\u003d0.7 to satisfy pip 6/PEP 440\n\nAlso use sudo -H with pip so that it doesn\u0027t create a ~stack/.cache\nother things can\u0027t write to as the stack user later.\n\nChange-Id: I2134c7d8f58f8b83f33150c9ed86d87f8ccba2f3\n"
    },
    {
      "commit": "1f65fd64ce2f4ed32a706f9bcb28c2ee0cf51e5b",
      "tree": "17da92dbb44093a59992333a3351cb5850983386",
      "parents": [
        "bfdddebc28e088ce9449feac8740901b82cc1c9b"
      ],
      "author": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Sat Dec 13 11:56:16 2014 -0700"
      },
      "committer": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Sun Dec 14 20:50:00 2014 -0700"
      },
      "message": "Clear multi-line sections before adding lines\n\nWith multiline support for local.conf, the first line is created with\niniset, which will set *all* previous lines to the same thing, and then\nsubsequent lines will be added. Modify the multiline support to first\nclear existing lines from the section.\n\nThis causes fatal errors with neutron.conf, which defines drivers with a bunch\nof service_provider\u003d options, and the current code ends up with the first\ndriver defined in local.conf being present twice.\n\nChange-Id: If132a94e53545d9134859aa508da7b9819ede2f8\n"
    },
    {
      "commit": "5f953dd1fe45a60dd92356d744fac613df21e9bb",
      "tree": "7e9409a51e794908a19ed630ff00011256c8126a",
      "parents": [
        "d7af0fe7a61115709681f8dcfee34207199bfe7b",
        "63d25d978ba0a0cdb1b689cafcebdaae7d609e06"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Dec 11 14:26:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Dec 11 14:26:10 2014 +0000"
      },
      "message": "Merge \"Allow use of dnf instead of yum on Fedora\""
    },
    {
      "commit": "63d25d978ba0a0cdb1b689cafcebdaae7d609e06",
      "tree": "b611e4ad3ef4bdab0cd4a2a013a7bc7f6a8a9198",
      "parents": [
        "53aaf15af37c718af8b47d1d2ba0052a875faed7"
      ],
      "author": {
        "name": "Daniel P. Berrange",
        "email": "berrange@redhat.com",
        "time": "Tue Dec 09 15:21:22 2014 +0000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Dec 11 09:37:55 2014 +1100"
      },
      "message": "Allow use of dnf instead of yum on Fedora\n\nSince Fedora 20 it has been possible to use \u0027dnf\u0027 as a drop-in\nreplacement for \u0027yum\u0027, and it is targetted to become the default\nin Fedora 22\n\n   http://fedoraproject.org/wiki/Changes/ReplaceYumWithDNF\n\nThere are many benefits of \u0027dnf\u0027 over \u0027yum\u0027 but the biggest\nfrom the POV of an openstack developer is its speed.\n\nAssuming an existing running devstack install ie all required\nRPMs already installed on the system. Now look at how long it\ntakes to run stack.sh, during which yum does not have to\nactually install anything\n\n # ./unstack.sh\n # time ./stack.sh\n real 11m12.193s\n user 10m17.129s\n sys  0m15.275s\n\nNow, with \u0027export YUM\u003ddnf\u0027 set in local.conf, run the same\ntest again\n\n # ./unstack.sh\n # time ./stack.sh\n real 0m48.610s\n user 0m28.939s\n sys  0m7.801s\n\nSo, this is showing that devstack is wasting 10 minutes just\nfor yum to figure out that everything is already installed.\nThe overhead of yum vs dnf is even worse when yum has to\nacutally depsolve to install new packages.\n\nChange-Id: Ia01a5f330a47b32207586902a861bedfc8a0f6e2\n"
    },
    {
      "commit": "d09a1db5a449fc758bf840858f6fecba173705b3",
      "tree": "19f949a600c09109c306dd86ad830c474693bb58",
      "parents": [
        "3fe578d41d52577e6af4dc948287dfbc2eb06f46",
        "e263c82e48a431e502bd6baceb6dfcfdc1750cbb"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Dec 10 20:32:15 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Dec 10 20:32:15 2014 +0000"
      },
      "message": "Merge \"add shebang lines to all lib files\""
    },
    {
      "commit": "e263c82e48a431e502bd6baceb6dfcfdc1750cbb",
      "tree": "5ca592e668dedb4debc6c7170f3abf37cc4bc0c6",
      "parents": [
        "2f8e08b5728f4272b415b1c0aab8ff62eae29b06"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Dec 05 14:25:28 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Dec 10 11:28:05 2014 -0500"
      },
      "message": "add shebang lines to all lib files\n\nWith gerrit 2.8, and the new change screen, this will trigger syntax\nhighlighting in gerrit. Thus making reviewing code a lot nicer.\n\nChange-Id: Id238748417ffab53e02d59413dba66f61e724383\n"
    },
    {
      "commit": "245daa27da40cb94410c7a8f8f19961c21821231",
      "tree": "ff152c217668f14f157e83fb982a7329a158a914",
      "parents": [
        "7adfe91ca6d83cf91fcfc0642b62f5e69e9afa52"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Fri Nov 14 02:17:22 2014 -0500"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sun Dec 07 21:20:38 2014 -0500"
      },
      "message": "Use --or-show for get_or_create_user/project/role function\n\nExploit the --or-show functionality of openstackclient,\nrather than issuing two different commands at the shell level,\nlet the CLI handle things.\n\nChange-Id: I1db239fd3473eb580def1c5fb28ce472a1363569\n"
    },
    {
      "commit": "81a016dbcd7bbf9fde791386fcc294fca0a59d71",
      "tree": "7e5afe9f11936865a10df3b66d8233be771013f5",
      "parents": [
        "dd69403ff4608f8fe2c50c71962aee042ae0c1fa"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Nov 15 17:18:13 2014 -0300"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Nov 24 09:51:17 2014 -0500"
      },
      "message": "Rename apts to debs\n\napts aren\u0027t a thing, debs are. apt-get installs debs, like yum installs\nrpms. Another option would be to rename rpms to yums, but that is even\nsillier, considering then for suse we\u0027d have to call it \"zypper-suse\" or\nsomething, even though it would want to consume yums-general as a base.\n\nInclude a symlink to the old name to help out with grenade. The symlink\nshould go away later.\n\nThis is a long-standing annoyance of mine.\n\nRelated-to: I915f0e59c13d8cf5fb3549c6202f8aa2f8be0856\nChange-Id: I0416180db5b6add996ce5b48c6966c1b68adbcb0\n"
    },
    {
      "commit": "9d09f0980285b5b5d5ccf3865cab1c5df49b25d5",
      "tree": "103bab25d57e14c2ec8d2df6fb6a6001aba46544",
      "parents": [
        "a74ae5d713de612197cfad284ae598f1da0da5f9"
      ],
      "author": {
        "name": "Oleg Gashev",
        "email": "oleg@gashev.net",
        "time": "Wed Nov 19 00:29:03 2014 -0500"
      },
      "committer": {
        "name": "Oleg Gashev",
        "email": "oleg@gashev.net",
        "time": "Wed Nov 19 00:29:03 2014 -0500"
      },
      "message": "Remove is_rackspace function from functions-common\n\nis_rackspace function never used and can be removed from code.\n\nChange-Id: Ic5d1dc419bdea3619fe248afad027e7d7c602b4f\nCloses-Bug: #1394076\n"
    },
    {
      "commit": "e08ab104e62da041fcc6b2aafba4349326f4a969",
      "tree": "859fc4953f6b45b75b9f4810ba0bf33477799f31",
      "parents": [
        "94f8bea9e4ff0434df1723cf269c4300a4373524"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Nov 13 17:09:28 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Nov 13 17:17:38 2014 -0500"
      },
      "message": "fix python-* lib from git installation\n\nWe\u0027re using all the magic variables based on python-fooclient, however\nall the inline code was using fooclient for variables. So we had a\nmismatch, which was kindly pointed out by some of the 3rd party ci\ntesters.\n\nChange-Id: I27a56222c7e8e610fba8bf97672d2a42f5cf14ca\n"
    },
    {
      "commit": "8f8e2d1fbfa4c51f6b68a6967e330cd478f979ee",
      "tree": "da3ebb16087f2d2796bdb4fce0b95cc6acc83b37",
      "parents": [
        "51d203f5a09be804dab4870018b8a604075979d5",
        "5cb190697c1bce5dcd2ad843922813b0cc74bd24"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Nov 12 19:50:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Nov 12 19:50:44 2014 +0000"
      },
      "message": "Merge \"support installing clients at released versions\""
    },
    {
      "commit": "af81d672937fb4cefb7d723769af232cac714c22",
      "tree": "31a1f14fb30c30e412f32a401a7f43addc311949",
      "parents": [
        "e6165e80bab0c06035a0b7002200bcbcfe4e62ab"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Mon Nov 10 09:04:54 2014 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Mon Nov 10 09:04:54 2014 +0100"
      },
      "message": "Drop PIP_USE_MIRRORS environment variable\n\nThe PIP_USE_MIRRORS does not do anything else than adding\n the --use-mirrors option to the pip command line.\n\nThe --use-mirrors is deprecated since pip-1.5,\nand does not do anything else than printing a warning message.\n\nFor using alternate pypi index url this option is not required and\nnot sufficient. The current way for using alternate mirrors\nis to defining them in the .pip/pip.conf either manually (before\ndevstack), or by using the PYPI_ALTERNATIVE_URL and PYPI_OVERRIDE\nenvironment variables.\n\nChange-Id: Ia33e783360e5661c2ef03b77e9f7af32b2633f2f\n"
    },
    {
      "commit": "5cb190697c1bce5dcd2ad843922813b0cc74bd24",
      "tree": "ba87095ef1603c957902abadcb692ccf653e6f59",
      "parents": [
        "2d18b83600bf53df3a41aec619eee67328fe154f"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Sat Nov 01 01:37:45 2014 +0100"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Nov 04 10:18:58 2014 +0100"
      },
      "message": "support installing clients at released versions\n\nexpand the devstack support for libraries from released versions to\nsupport python-* clients and tempest_lib.\n\nDepends-On: I81b0d228e7769758c61e5b0323ecfce8c8886d39\n\nChange-Id: I26fac0ccf8fd4818e24618d56bf04b32306f88f6\n"
    },
    {
      "commit": "3073a93f6aa4105866d1f7b8d50a61584051f8c3",
      "tree": "586464a8a8e0d8f25ed790ba23255f76e21e0772",
      "parents": [
        "182c0c459dc6e420c0c5a1b2a14c078b926a484b",
        "5a91c3548370d3de856e5522f2d11775278115cf"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Nov 03 12:11:15 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Nov 03 12:11:15 2014 +0000"
      },
      "message": "Merge \"USe `trueorfalse` for INSTALL_TESTONLY_PACKAGES\""
    },
    {
      "commit": "5a91c3548370d3de856e5522f2d11775278115cf",
      "tree": "8f36015c312e9302101d82028064fc10d32c5a24",
      "parents": [
        "219a58e57bfab5d8071e636399963bd31d9eca2a"
      ],
      "author": {
        "name": "Flavio Percoco",
        "email": "flaper87@gmail.com",
        "time": "Fri Oct 31 18:48:00 2014 +0100"
      },
      "committer": {
        "name": "Flavio Percoco",
        "email": "flaper87@gmail.com",
        "time": "Fri Oct 31 18:48:00 2014 +0100"
      },
      "message": "USe `trueorfalse` for INSTALL_TESTONLY_PACKAGES\n\nINSTALL_TESTONLY_PACKAGES is assumed to be set to `True` or `False`.\nHowever, in devstack-gate this variable is set to 0 or 1. The patch uses\nthe already existing `trueorfalse` function to evaluate\nINSTALL_TESTONLY_PACKAGES and normalize its value.\n\nChange-Id: I0e4a31e422bad2a31d919d9f871e24833a0faa99\n"
    },
    {
      "commit": "292b2a7ee61f9b034230e8c99d2e5c7154dcf79b",
      "tree": "ce45a85e11f7e7ec0ad71e5466338f29229f1291",
      "parents": [
        "bd5263cd37bc3d451a4a1680ffb79b9f639a5e88"
      ],
      "author": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@valinux.co.jp",
        "time": "Fri Oct 31 13:48:58 2014 +0900"
      },
      "committer": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@valinux.co.jp",
        "time": "Fri Oct 31 14:29:17 2014 +0900"
      },
      "message": "Workaround openrc failure on zsh\n\nThe recent GIT_DEPTH change introduced a [[ ]] construct\nwhich doesn\u0027t work for zsh 5.0.2.  Workaround it by tweaking the test.\n\nThe following is a demonstration to show how zsh behaves:\n\n    % if [[ \"\" ]];then echo hoge;fi\n    zsh: parse error near `]]\u0027\n    % if [[ \"x\" ]];then echo hoge;fi\n    zsh: parse error near `]]\u0027\n    % if [[ -n \"\" ]];then echo hoge;fi\n    % if [[ -n \"x\" ]];then echo hoge;fi\n    hoge\n    %\n\nCloses-Bug: #1387943\nChange-Id: Ia88de876dacb3664a7c3d8f5a035e8e50fddb678\n"
    },
    {
      "commit": "483940350eaaeffe83f67ca5255a06fd7acf78ff",
      "tree": "c08407fd93a9021733dbb424ad6e4c2032c37e4e",
      "parents": [
        "33d079bcca031e3a02ae0107b20228fa618dca34",
        "def1534ce06409c4c70d6569ea6314a82897e28b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Oct 29 19:08:03 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 29 19:08:03 2014 +0000"
      },
      "message": "Merge \"allow for soft updating of global-requirements\""
    },
    {
      "commit": "3c92eb9b7fb844ab4ea760e1e444c65f412e4769",
      "tree": "ff862c470c02957e23a388029e32d51fde494811",
      "parents": [
        "7f55e0d36eeedff6230e005935cefcaff9179eac",
        "24779f65a675f2e78c09b2520ebefcd52b4f0be0"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Oct 28 03:16:03 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Oct 28 03:16:03 2014 +0000"
      },
      "message": "Merge \"Add swift user and project in non-default domain\""
    },
    {
      "commit": "def1534ce06409c4c70d6569ea6314a82897e28b",
      "tree": "6bc90ee54addedd9b2d9270ae48c36ec9f492ed6",
      "parents": [
        "ce1f133732e298eb1b5d0814d1670756493c2a32"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Oct 27 12:26:04 2014 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Oct 27 12:26:04 2014 -0400"
      },
      "message": "allow for soft updating of global-requirements\n\nThis creates a devstack REQUIREMENTS_MODE which is how we handle\nsyncing of global requirements. The default is \u0027strict\u0027, which is\ncurrent behavior. There is a new \u0027soft\u0027 mode which does a\n--soft-update for projects *not* found in projects.txt, which lets\nthem specify additional requirements.\n\nChange-Id: I4aa606514131b5dde67d87f5c8db5a3f3e50fc03\nDepends-On: I1f195ef9ff1509659848e14ec9936ff6f66a6496\n"
    },
    {
      "commit": "51f0de5c5d5aa779db0ed647804d7d9488a9122b",
      "tree": "861422e32a7025bfbe4f64899d52d1352e7b8d26",
      "parents": [
        "514c82030cf04da742d16582a23cc64962fdbda1"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Mon Oct 20 16:32:34 2014 +0200"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Fri Oct 24 10:24:13 2014 +0200"
      },
      "message": "Allow depth limiting git clones\n\nDepending on how you are using devstack you probably don\u0027t need the\nentire history of a project so we should allow people to specify a clone\ndepth to speed up the devstack process.\n\nChange-Id: I804a5abcc80f6a81e915c0bb4dceae72486441a7\nBlueprint: git-depth\n"
    },
    {
      "commit": "24779f65a675f2e78c09b2520ebefcd52b4f0be0",
      "tree": "bd4ce41a2e7d8aa1def79d9398a1beef2547aed6",
      "parents": [
        "572a4c4c3c5553beea01f519dbdcadfb9c6f78b7"
      ],
      "author": {
        "name": "Alistair Coles",
        "email": "alistair.coles@hp.com",
        "time": "Wed Oct 15 18:57:59 2014 +0100"
      },
      "committer": {
        "name": "Alistair Coles",
        "email": "alistair.coles@hp.com",
        "time": "Tue Oct 21 14:36:15 2014 +0100"
      },
      "message": "Add swift user and project in non-default domain\n\nSwift has functional tests that check access controls\nbetween users and projects in differing domains. Those tests\nare currently skipped by default since swift tests are\nconfigured to use keystone v2 API. In order for those\ntests to pass when using keystone v3 API, a user and\nproject must be setup in a non-default domain.\n\nThis patch creates a domain, and a user and project in\nthat domain, in support of swift functional tests moving\nto using keystone v3 API.\n\nChanges:\nlib/swift\n    - create a new domain, project and user for\n      swift testing\n    - add new project and user credentials to swift\n      test config file\n    - set correct identity service url in swift test\n      config file according to kesytone API version\n\nfunctions-common\n    - add function get_or_create_domain\n    - modify get_or_create_user and get_or_create_project\n      functions to optionally specify a domain\n\nChange-Id: I557de01bf196075f2f3adcdf4dd1b43756d8a0ae\n"
    },
    {
      "commit": "8543a0f763c1f4fcc3ca7e13efece54a0ff7fbb6",
      "tree": "40e56602096cd06f7e101639f7dac5c973902db4",
      "parents": [
        "22ec45e63a45bb38f63ca995446338859dacb207"
      ],
      "author": {
        "name": "Adam Gandelman",
        "email": "adamg@ubuntu.com",
        "time": "Thu Oct 16 17:42:33 2014 -0700"
      },
      "committer": {
        "name": "Adam Gandelman",
        "email": "adamg@ubuntu.com",
        "time": "Mon Oct 20 13:42:52 2014 -0700"
      },
      "message": "Make screen_service() useful for more than services\n\nscreen_service() can currently only be used to launch things that\npass the \u0027is_service_enabled\u0027 check, even though its calling functions\nwill have already done this.  This removes such check, renames it\nto screen_process() and updates its usage elsewhere.\n\nChange-Id: I480a4560a45b131a95c1b2d2d2379aeba542a9bc\n"
    },
    {
      "commit": "751ad1aadf8447c2b6945b6ae4ab73bf71a244ca",
      "tree": "dd29652859f3a425f8a7f2853149c157d743f6f4",
      "parents": [
        "ddfbacef9fd0bd64b38674524f7829b42ed08bbd"
      ],
      "author": {
        "name": "Robert Li",
        "email": "baoli@cisco.com",
        "time": "Wed Oct 15 21:40:53 2014 -0400"
      },
      "committer": {
        "name": "Robert Li",
        "email": "baoli@cisco.com",
        "time": "Wed Oct 15 21:44:31 2014 -0400"
      },
      "message": "Allow multi-line config items in meta-section of local.conf\n\nIt would behave such as the contents from each meta-section in\nlocal.conf is copied to the destination files. One exception is the multiline\noptions not grouped together. In that case, the contents will be grouped\ntogether in its destination config file.\n\nCheck tests/test_config.sh for examples.\n\nThis was originally committed in https://review.openstack.org/128805.\nBut the original change used AWK syntax that is not supported in AWK\n3.1.8, and caused syntax error on servers with that AWK version. This\npatch makes the necessary change so that it\u0027s compatible with AWK\n3.1.8.\n\nChange-Id: Id1e1fe01f05bd0f19ea6e89c4f4c0f8be695dfce\nPartial-Bug: #1374118\n"
    },
    {
      "commit": "ddfbacef9fd0bd64b38674524f7829b42ed08bbd",
      "tree": "e581449c0f8059530f4f7f4648392f5810305b3b",
      "parents": [
        "e0d6a46b8afaeacc070a84f58ecf8e03ffe8275c",
        "8f38572588af308d433a3bd7fbd93163348d98d3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Oct 15 22:02:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 15 22:02:08 2014 +0000"
      },
      "message": "Merge \"support proposed/* branches\""
    }
  ],
  "next": "8f38572588af308d433a3bd7fbd93163348d98d3"
}
