)]}'
{
  "log": [
    {
      "commit": "346edcc532719f6f29471920f9434b6d5300d43a",
      "tree": "e2f4e59d881d87a7316d1cff11032960b56cba4d",
      "parents": [
        "ca802bcfcc1d45697da9f4c26683d2887eb63f39"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Aug 26 09:38:37 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Aug 26 09:38:37 2015 -0400"
      },
      "message": "check all possible services when configuring tempest\n\nThe previous approach assumed that devstack in tree service support\nwould always be a super set of tempest. That\u0027s not necessarily\ntrue. Instead when configuring tempest we should look at all the\npossible services that tempest could know about, which will let us\ndisable services we don\u0027t have support for.\n\nChange-Id: I9c24705e494689f09a885eb0a640efd50db33fcf\n"
    },
    {
      "commit": "7e5fb63b71364637eaa81a0f978af76fe3df2c97",
      "tree": "d45b216e5f3a9c61518d4bbed441374c374cb7d8",
      "parents": [
        "32a3e322b428d83fa5922c1b9e6adce047064bd6"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Thu Jul 16 10:40:43 2015 +1000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Thu Jul 16 10:40:43 2015 +1000"
      },
      "message": "Always use volume v1 API for type create.\n\nOpenStackClient doesn\u0027t currently support volume type create on the V2\nAPI. Make sure that all requests use the V1 api until this has been\nfixed in OpenStackClient.\n\nChange-Id: I2fa133d30753e188d383d3de78c0022a3625cb34\nCloses-Bug: #1475062\n"
    },
    {
      "commit": "32a3e322b428d83fa5922c1b9e6adce047064bd6",
      "tree": "31de7117eeb487c0367179494c3d426313299da5",
      "parents": [
        "a13e08707dc6c47727f7c7d6f02ec37f822baed9",
        "494f7cdf35d025f73b4cce9a3bde7b433183b1d8"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jul 15 05:35:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jul 15 05:35:31 2015 +0000"
      },
      "message": "Merge \"Use openstack cli for cinder type creation\""
    },
    {
      "commit": "aaae79b095fb4d4029077ed490adc61bf9e1eb46",
      "tree": "a76931c3ff60d7bf6a8d57dca7b2fdbfa3fb239e",
      "parents": [
        "a3c94468baa159840a47c34cf94d97d816208313",
        "b17ad7560d7d67e3464b489e124c540e025b9299"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jul 14 04:53:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jul 14 04:53:34 2015 +0000"
      },
      "message": "Merge \"Use identity V3 API for endpoint creation\""
    },
    {
      "commit": "494f7cdf35d025f73b4cce9a3bde7b433183b1d8",
      "tree": "2e25300c1b06afe0fa28fac17a7f8cf812369b25",
      "parents": [
        "72ce6acd22a553e4d34f0ffdc429aaaed7ed1212"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Fri May 29 08:33:03 2015 +0000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Wed Jul 08 05:17:00 2015 +1000"
      },
      "message": "Use openstack cli for cinder type creation\n\nThis command was commented out so assumedly there used to be a bug. Switch to\nOpenStackClient as the cinder CLI doesn\u0027t handle v3 auth correctly.\n\nImplements: bp keystonev3\nChange-Id: I1acdc04cf04b7056701bdded31ef2a015de5bce3\n"
    },
    {
      "commit": "b17ad7560d7d67e3464b489e124c540e025b9299",
      "tree": "4af18b24b59bded064806f15b0f2c8b69e7d9183",
      "parents": [
        "68f9172dbd18688db188454c775dbf139224aeca"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Fri May 29 06:04:47 2015 +0000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Wed Jul 08 05:17:00 2015 +1000"
      },
      "message": "Use identity V3 API for endpoint creation\n\nAlways use the keystone V3 API when creating services and endpoints. The syntax\nhere is slightly different but we maintain the function interface.\n\nChange-Id: Ib3a375918a45fd6e37d873a1a5c0c4b26bdbb5d8\nImplements: bp keystonev3\n"
    },
    {
      "commit": "180f5eb652c73463cd5ae7d0dbede6d9d31a5df5",
      "tree": "7170199543e18d917777de98c56723731fe6c424",
      "parents": [
        "52844a11dddb7e0631f9d11eb74251b17e05beb5"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Tue Jun 16 13:14:31 2015 -0400"
      },
      "committer": {
        "name": "Jeremy Alvis",
        "email": "jeremy.alvis@hp.com",
        "time": "Thu Jul 02 15:16:34 2015 -0600"
      },
      "message": "Add IPv6 support to devstack infrastructure\n\nBy default, most Openstack services are bound to 0.0.0.0\nand service endpoints are registered as IPv4 addresses.\nWith this change we introduce two new variables to control\nthis behavior:\n\nSERVICE_IP_VERSION - can either be \"4\" or \"6\".\n\nWhen set to \"4\" (default if not set) devstack will operate\nas today - most services will open listen sockets on 0.0.0.0\nand service endpoints will be registered using HOST_IP as the\naddress.\n\nWhen set to \"6\" devstack services will open listen sockets on ::\nand service endpoints will be registered using HOST_IPV6 as the\naddress.\n\nThere is no support for \"4+6\", more work is required for that.\n\nHOST_IPV6 - if SERVICE_IP_VERSION\u003d6 this must be an IPv6\naddress configured on the system.\n\nSome existing services, like the Openvswitch agent, will continue\nto use IPv4 addresses for things like tunnel endpoints.  This is\na current restriction in the code and can be updated at a later\ntime.  This change is just a first step to supporting IPv6-only\ncontrol and data planes in devstack.\n\nThis change is also partly based on two previous patches,\nhttps://review.openstack.org/#/c/140519/ and\nhttps://review.openstack.org/#/c/176898/\n\nChange-Id: I5c0b775490ce54ab104fd5e89b20fb700212ae74\nCo-Authored-By: Sean Collins \u003csean@coreitpro.com\u003e\nCo-Authored-By: Baodong Li \u003cbaoli@cisco.com\u003e\nCo-Authored-By: Sridhar Gaddam \u003csridhar.gaddam@enovance.com\u003e\nCo-Authored-By: Adam Kacmarsky \u003cadam.kacmarsky@hp.com\u003e\nCo-Authored-By: Jeremy Alvis \u003cjeremy.alvis@hp.com\u003e\n"
    },
    {
      "commit": "c342243cf803af7ab4c371eff3bff71ffb45d9ab",
      "tree": "59737fadec76664ad7ebffa54897b09d35e34b43",
      "parents": [
        "4ff5e2bf7367cf16b212286e48033246d124febc",
        "ce8e6f6aa61c267df7892e7e8748963db8c83bc3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Jun 20 17:17:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Jun 20 17:17:52 2015 +0000"
      },
      "message": "Merge \"Add ability to specify cinder lvm_type option\""
    },
    {
      "commit": "6bc089fce03e1b29405224eeed4761f08339255a",
      "tree": "d5c9a9d5458b2fbde52c033c930257daec0b42c5",
      "parents": [
        "7a6f0b6bffd412b7d647af66dea3d972370e9440"
      ],
      "author": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Mon Jun 01 12:39:12 2015 +0200"
      },
      "committer": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Sat Jun 13 22:49:30 2015 +0200"
      },
      "message": "Cinder: On SUSE, avoid restarting tgt\n\nThere is a known bug that restart tgtd fails, so go the\nworkaround way and stopping/starting it instead.\n\nIn addition, remove the else case since unstack also\nuses cleanup_cinder, which already unconditionally supports\nall distros.\n\nChange-Id: Ib70917a95f001ef36a51815f08416fa30084aad6\n"
    },
    {
      "commit": "10e1fd420dbebec2a5e546266edfc748b8684f9b",
      "tree": "b154beff1e426f6b6e53f4e13620b9ae60db3a5a",
      "parents": [
        "21b7e975fa3d1db3710b3d12d965f87828d9be84"
      ],
      "author": {
        "name": "Ramy Asselin",
        "email": "ramy.asselin@hp.com",
        "time": "Thu Jun 04 12:12:15 2015 -0700"
      },
      "committer": {
        "name": "Ramy Asselin",
        "email": "ramy.asselin@hp.com",
        "time": "Mon Jun 08 09:54:16 2015 -0700"
      },
      "message": "Allow override of os-brick library used by cinder\n\nos-brick code was pulled out of cinder and made into its own library\nhttps://review.openstack.org/#/c/155552/\n\nadded to requirements:\nhttps://review.openstack.org/#/c/177372/\n\nIntegration tests were added\nhttps://review.openstack.org/#/c/188156/\n\nBut they still use the version of os-brick from pip.\n\nThis change updates devstack to pull in the changes from\nos-brick patch sets instead, when configured to do so.\n\nNeeded-by: Id2bc10782847861fe4bb5e9e46245654450e38fd\n\nChange-Id: I5359dd37dfe94bd469d5ca35f9fbaeda61b5fac4\n"
    },
    {
      "commit": "0479bc101c9bc8adc25e408c421f5d3855bfd8bd",
      "tree": "693501e8eacc8160c32c139c6bd01a4f7654bfdf",
      "parents": [
        "c9e842871b850da24a57e2ba5c98020c529111b2",
        "c6782413081cbdc72c7b24e34acec383a1cf2f46"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue May 19 20:24:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue May 19 20:24:33 2015 +0000"
      },
      "message": "Merge \"Infer rootwrap arguments from project\""
    },
    {
      "commit": "c6782413081cbdc72c7b24e34acec383a1cf2f46",
      "tree": "029dc47772a5814541fed23f66555b6ec5c41d03",
      "parents": [
        "a79de45497dc4c9d388b698b939002d2857f0cc7"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu May 14 10:01:53 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri May 15 14:01:20 2015 +1000"
      },
      "message": "Infer rootwrap arguments from project\n\nWe can infer the binary and configuration paths just from the project\nname and expanding this to the known *_DIR \u0026 *_BIN_DIR variables.  A\nsimilar thing is done for policyd settings\n\nChange-Id: I7c6a9fa106948ae5cbcf52555ade6154623798f1\n"
    },
    {
      "commit": "38bee18a2c440b01bd1c2187cb2a62a841e3b7ae",
      "tree": "e4d6bc05cd985bcec214b01f392d551b5982e220",
      "parents": [
        "041fd165216c5f812368612a7b70c38b0b8ee266"
      ],
      "author": {
        "name": "Jordan Pittier",
        "email": "jordan.pittier@scality.com",
        "time": "Mon May 11 16:51:10 2015 +0200"
      },
      "committer": {
        "name": "Jordan Pittier",
        "email": "jordan.pittier@scality.com",
        "time": "Wed May 13 07:15:40 2015 +0000"
      },
      "message": "Cinder: Set os_privileged_user credentials (for os-assisted-snapshots)\n\nWhen calling os-assisted-snapshots APIs, Cinder often (by default) needs\n to pass an admin token to Nova. Currently it uses the credentials of\n the current user.\n\nThis will cause calls to Nova APIs for assisted volume snapshots to fail.\n\nConfiguration options should be added to specify different credentials\nfor talking to Nova.\n\nChange-Id: I9e3ed53f4e1349d57a0c33518445f54ac63e36ec\nRelated-Bug: #1308736"
    },
    {
      "commit": "ce8e6f6aa61c267df7892e7e8748963db8c83bc3",
      "tree": "7e12f1381acb901bc969f06378f3e78b30827fc9",
      "parents": [
        "c5caff6776ac348c94a407ea80a70f0c8b3681fa"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Tue May 12 17:28:59 2015 -0600"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Tue May 12 17:28:59 2015 -0600"
      },
      "message": "Add ability to specify cinder lvm_type option\n\nCinder has had an lvm_type option for quite a while\nthat allows the LVM driver to be configured to use\nthin provisioning.\n\nThis required an additional PPA in Precise, but is\navailable in the default Trusty packages.\n\nThis patch adds the lvm_type option, and we\u0027ll use\nit to do gate testing against the lvm_thin configuration.\n\nChange-Id: I99c7fea131f3d79747ec75052adf8b24f41ba483\n"
    },
    {
      "commit": "dfcc3871c022516330b6afb6c74751ac42a87480",
      "tree": "a19b91a85b7dbf43c22447ee409b3f44cb15dd26",
      "parents": [
        "459c793060113e06e258a3a4ae76a9cda6aa1f4d"
      ],
      "author": {
        "name": "Joe D\u0027Andrea",
        "email": "jdandrea@research.att.com",
        "time": "Wed Apr 29 15:39:17 2015 -0400"
      },
      "committer": {
        "name": "Joe D\u0027Andrea",
        "email": "jdandrea@research.att.com",
        "time": "Mon May 04 14:15:41 2015 -0400"
      },
      "message": "cinder setup now refers to CINDER_VOLUME_CLEAR and volume_clear\n\nCINDER_SECURE_DELETE previously iniset volume_clear to none as a\nside effect, however secure_delete is not documented in cinder.\nNow using CINDER_VOLUME_CLEAR outright. CINDER_SECURE_DELETE is\nsupported but now deprecated.\n\nChange-Id: Ic8694cf16654c23b27d23853a9f06ddf1050fa93\nCloses-Bug: #1450159\n"
    },
    {
      "commit": "95b994d54815027904504cf173451cd87fd99c66",
      "tree": "55591df6f971db1c94fb0233ac0b4eebc9143739",
      "parents": [
        "e52cfc552438be7be4a273992798d97529f97b6b"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith8@gmail.com",
        "time": "Sat Apr 18 11:20:15 2015 -0600"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Sat Apr 18 16:30:47 2015 -0600"
      },
      "message": "Add logging config to cinder.conf\n\nPart of the effort to clean up the Cinder logs is to use\nthe resource tag in the log format.  We also want to have\nsome consistency with other projects in how we do logging.\n\nThis change adds the logging format to cinder.conf similar to\nwhat Nova and others use, and most importantly turns on the use\nof the resource tag that\u0027s in olso_log.\n\nWe\u0027re slowly cleaning up the logging in Cinder by doing things\nlike replacing \"Delete volume %(volume_id)s compoleted\" with\n(\"Delete volume completed successfully.\", resource\u003dvolume)\n\nIt woudl be good to have these picked up as we transition so we\u0027re\nnot missing info.  Also, there\u0027s sure to be cases where \"volume\"\nisn\u0027t a valid dbref and we find issues that need fixed.\n\nChange-Id: I193637fea14d97183f6a9782f37d8edcf929e0c4\n"
    },
    {
      "commit": "32d6bc6ad1f5d857c8e34e15001f8eb8666c601c",
      "tree": "ade89fecd1c5db1a4090df0c6b1cb1eda6d96c69",
      "parents": [
        "43479db9105db75d7762e9cfbc950841725fa644"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sun Mar 29 14:16:44 2015 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sun Mar 29 22:29:28 2015 -0500"
      },
      "message": "Add inc/rootwrap\n\nRootwrap shouldn\u0027t be a unique snowflake.  Plus the binaries tend\nto be called assuming PATH will find them.  Not so with venvs\nso we need to work around that brokenness.\n\nConfigure Cinder and Nova to use configure_rootwrap().\n\nChange-Id: I8ee1f66014875caf20a2d14ff6ef3672673ba85a\n"
    },
    {
      "commit": "0471e588df6fb4e68fc1b02331f4e5765a2ea890",
      "tree": "5566a9d13f28a322ec1335073721fedfd346840c",
      "parents": [
        "c443459f50bea6a28edc3aef0a885229e3f7ebe8",
        "c70605d1013296d0127ad38d8c53a69ed982e647"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 27 20:35:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 27 20:35:10 2015 +0000"
      },
      "message": "Merge \"Add lioadm cinder iscsi helper support\""
    },
    {
      "commit": "e57a1e04d59077101d14382c1c597120213789bd",
      "tree": "744908c21e184cda146e7ee40c8873ba71444a2d",
      "parents": [
        "932340bd7af6b85351dd4d36eba5397952eb1cf6",
        "6aaad5f7239c8e199fde0d1e5fca14f0a77164f2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 27 00:25:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 27 00:25:38 2015 +0000"
      },
      "message": "Merge \"Install Cinder into its own venv\""
    },
    {
      "commit": "c70605d1013296d0127ad38d8c53a69ed982e647",
      "tree": "c9efeede5347f24ea19ea7faeaad68d34da2136b",
      "parents": [
        "c9b24ffdf58f238c0374bfc1a54d2b27eab69e7b"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Mon Jan 26 15:44:47 2015 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Thu Mar 26 20:41:18 2015 +0100"
      },
      "message": "Add lioadm cinder iscsi helper support\n\nThe Linux-IO is a modern way of handling targets.\nPer the IRC discussions lioadm as default\nseams like a better default for everyone, for now it will be\noptional, but the tgtadm admin support expected to be removed when\nlioadm works well with all CI (including third party).\n\nChange-Id: Ia54c59914c1d3ff2ef5f00ecf819426bc448d0a9\n"
    },
    {
      "commit": "743d03bf7dbb3d5e2d6b20fa872694265e36a36d",
      "tree": "5e35af49965e67db24f09760d739153e7630acaf",
      "parents": [
        "d5532b5255878ea2fdf330828fac943c74e3d389",
        "2dd110ce8668f6cb7b507928bad972d94656e2d7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Mar 22 02:41:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Mar 22 02:41:03 2015 +0000"
      },
      "message": "Merge \"iniset_rpc_backend default section\""
    },
    {
      "commit": "6aaad5f7239c8e199fde0d1e5fca14f0a77164f2",
      "tree": "75021131cde704fe2bf770424ca335a5093fb3ad",
      "parents": [
        "aed607920542ee27f87f8e5cdb659faf1bde00eb"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 18 07:09:04 2015 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Mar 20 10:47:44 2015 -0500"
      },
      "message": "Install Cinder into its own venv\n\nrootwrap is horribly called indirectly via PATH.  The choice, other than fixing\nsuch nonsense, is to force the path in sudo.\n\nChange-Id: Idac07455359b347e1c617736a515c2261b56d871\n"
    },
    {
      "commit": "05163d66ac4459cabff4ccf303b7ec10f2fa72a7",
      "tree": "7c39194b241f3d23094798d40916fa55d6d0018a",
      "parents": [
        "597fd75f4178d2179dedef10af3f5dda2994b76c",
        "8421c2b9ab5d8242abb7d1bdc20435408db8b802"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 20 14:30:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 20 14:30:06 2015 +0000"
      },
      "message": "Merge \"Use install(1) where possible\""
    },
    {
      "commit": "889d76b4cf1b465386b1aa6653218fc6bebe2493",
      "tree": "62da349936f3449baef571205a0cbc7a5690019f",
      "parents": [
        "e64bd629b4a12cca2002ee78c1a0162bd73a37a9",
        "23d6d5068752358c1d3bbacc314594b1b50e2fc8"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Mar 20 14:29:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Mar 20 14:29:44 2015 +0000"
      },
      "message": "Merge \"Stop using deprecated oslo_concurrency and sql_connection config options\""
    },
    {
      "commit": "4bf861c76c220a98a3b3165eea5448411d000f3a",
      "tree": "3456436ad5a89e384fb206c36557ff88c6279907",
      "parents": [
        "5e159edab375ed950cc5c91a6c445bbc5541b3c1"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Tue Mar 17 21:07:39 2015 -0600"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Wed Mar 18 10:29:29 2015 -0600"
      },
      "message": "Create global_filter to avoid scan of missing devs\n\nA while back I added an lvm.conf file with a device filter setting\nto try and clean up the LVM hangs in the gate:\n  (commit 0b9e76f280208b5b5ad54bb6fbc4133e63037286)\n\nIt turns out this wasn\u0027t the real problem, the real problem\nis that on an LVS/VGS command LVM  will attempt to open and read\nall potential block devices in /dev to see if they have LVM data\non them.  I initially thought the local filter would keep that\nfrom happening, as it turns out the local filter only limits what\u0027s\nreturned AFTER the actual scan process.  In order to keep the scan\nfrom happening at all, either a global_filter needs to be used or\nlvmetad needs to be running and enabled.\n\nThere are situations in gate tests where /dev/sdX devices are created and\ndeleted and the result is that we hit situations where LVM tries\nto open up devices to check them even if they\u0027ve been removed.  The\nresult is we have a blocking open call from LVM that takes approx\n60 seconds to time out and fail.\n\nUbuntu won\u0027t have a version of lvmetad until Vivid, so for now\nthat just leaves the global_filter as an option.\n\nThis patch adds the filter routine to the end of stack.sh.  We don\u0027t\nwant to put the routine in lib/cinder_backend/lvm like we had it because\nnow we have to set the global filter for all LVM commands on the system.\nSo we put this as one of the last steps in stack.sh and run it if Cinder\nis enabled.  This way we can query PV\u0027s on the system regardless of what\nother services may be running and using LVM and make sure that all of\ntheir devices are added to the filter as well.\n\nAlso, make sure we only set this for Ubuntu as Fedora/RHEL variants\nutilize lvmetad.\n\nThis patch also removes the old change that set the local filter.\n\nDocImpact\nShould add this to recommended config for Cinder on systems\nthat don\u0027t have lvmetad, and recommend lvmetad for those that do.\n\nChange-Id: I5d5c48e188cbb9b4208096736807f082bce524e8\nCloses-Bug: #1373513\n"
    },
    {
      "commit": "8421c2b9ab5d8242abb7d1bdc20435408db8b802",
      "tree": "9d9b6abbf9ee99f6cadb81a9b5a38ecc676961e8",
      "parents": [
        "5c619b43dbd9a649cc7bad3f8527c8b9ded1d631"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Mar 16 13:52:19 2015 -0500"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Mar 18 13:30:59 2015 +1100"
      },
      "message": "Use install(1) where possible\n\nThis eliminated a number of sudo calls by doing the copy/chown/chmod in\na single step and sets a common pattern.\n\nChange-Id: I9c8f48854d5bc443cc187df0948c28b82c4d2838\n"
    },
    {
      "commit": "2dd110ce8668f6cb7b507928bad972d94656e2d7",
      "tree": "63f8353d18a51a7fe14338760dec43f10f9c72e6",
      "parents": [
        "5dfecc8966912c2f74a4c7ecc85dd5f0b930cd99"
      ],
      "author": {
        "name": "Brant Knudson",
        "email": "bknudson@us.ibm.com",
        "time": "Sat Mar 14 12:39:14 2015 -0500"
      },
      "committer": {
        "name": "Brant Knudson",
        "email": "bknudson@us.ibm.com",
        "time": "Sat Mar 14 17:53:54 2015 +0000"
      },
      "message": "iniset_rpc_backend default section\n\niniset_rpc_backend should know what section it needs to set the\nconfig options in better than the callers. The config options\nhave actually been moved to different sections and the options\nin the DEFAULT section are deprecated.\n\nChange-Id: I0e07fe03c7812ef8df49e126bf71c57588635639\n"
    },
    {
      "commit": "23d6d5068752358c1d3bbacc314594b1b50e2fc8",
      "tree": "2ab4aa455d84ffc337687bc51c370a23be5f60d7",
      "parents": [
        "cfbf8a165956b0c6b0c921d5486295d7c923310a"
      ],
      "author": {
        "name": "Joe Gordon",
        "email": "joe.gordon0@gmail.com",
        "time": "Fri Mar 06 15:24:22 2015 -0800"
      },
      "committer": {
        "name": "Joe Gordon",
        "email": "joe.gordon0@gmail.com",
        "time": "Thu Mar 12 22:01:06 2015 +0000"
      },
      "message": "Stop using deprecated oslo_concurrency and sql_connection config options\n\nAs per the logs:\n Option \"lock_path\" from group \"DEFAULT\" is deprecated. Use option \"lock_path\" from group\n\"oslo_concurrency\".\n\nOption \"sql_connection\" from group \"DEFAULT\" is deprecated. Use option\n\"connection\" from group \"database\".\n\nChange-Id: I2109cec07ebee916c9ce0ccd24bd9a47d8d3c688"
    },
    {
      "commit": "0d8b9b31d22e3404172af4293c99c325e8834278",
      "tree": "5949487fd9af794c98d171c2c9195b2a1a254931",
      "parents": [
        "3d223fc2ce511d1702310b864e9c4249abbff4d7",
        "679f395fbbae68b4dfee0edbddff646ff75b5a0d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Mar 12 15:22:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Mar 12 15:22:39 2015 +0000"
      },
      "message": "Merge \"Set os_region_name for cinder\""
    },
    {
      "commit": "41daa208d9f1bcc56c861b7751a51d3ef4b0f3f4",
      "tree": "4cb5c3aeb76d363f1eed00d61f54d307d8c21687",
      "parents": [
        "44d4ec2a8630cd34eff49783a26f13a240bd6b1d"
      ],
      "author": {
        "name": "Vincent Hou",
        "email": "sbhou@cn.ibm.com",
        "time": "Wed Mar 04 15:34:41 2015 +0800"
      },
      "committer": {
        "name": "Vincent Hou",
        "email": "sbhou@cn.ibm.com",
        "time": "Thu Mar 12 10:17:52 2015 +0800"
      },
      "message": "Remove my_ip from cinder.conf\n\nThe current issue is that if we deploy c-vol service on a separate\nmachine, my_ip and SERVICE_HOST will be different, because my_ip is\nthe machine where c-vol service is running and SERVICE_HOST points\nto the machine where the cinder api service is running. If my_ip of\nc-vol in cinder.conf is set to the IP of c-api, it will cause the\nissue that the volume is unable to attach. The issue can be resolved\nby removing my_ip from cinder.conf.\n\nChange-Id: I699c0b5297c60e9f9934f74684abf563f4b0e977\ncloses-bug: #1428013\n"
    },
    {
      "commit": "679f395fbbae68b4dfee0edbddff646ff75b5a0d",
      "tree": "5db8139fe29f0fd3b6bba6fc49e694f1d1d40ba4",
      "parents": [
        "c5ab3e0c8665688c38f34edd582f0f2f628de06f"
      ],
      "author": {
        "name": "Ethan Lynn",
        "email": "xjunlin@cn.ibm.com",
        "time": "Mon Mar 09 23:45:18 2015 +0800"
      },
      "committer": {
        "name": "Ethan Lynn",
        "email": "xjunlin@cn.ibm.com",
        "time": "Tue Mar 10 15:15:26 2015 +0800"
      },
      "message": "Set os_region_name for cinder\n\nRegion name should be set to nova.conf and cinder.conf so that\ncinder volume can work in multiregion env.\n\nCloses-Bug: #1429738\nChange-Id: Ib20911c24d8daabc07e6515f4a23a745d77593ff\n"
    },
    {
      "commit": "311f48764465d809cbc86f0ea38882a98221f7ec",
      "tree": "5489309e1b0f07545100c11183bd916710be2e54",
      "parents": [
        "2a811912c6e8a2f85d4a9ef03694cd29cb5fd1cd"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Dec 18 16:31:34 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 11 10:56:47 2015 -0600"
      },
      "message": "Remove deprecated vars\n\nThese have been emitting deprecated warnings for over a full release cycle:\nQ_AGENT_EXTRA_AGENT_OPTS, Q_AGENT_EXTRA_SRV_OPTS, CINDER_MULTI_LVM_BACKEND\n\nChange-Id: I3aa5cabd6ce3a0072cba08bbca1ad23d4a831219\n"
    },
    {
      "commit": "e8bc2b82a04f4cca251ed7437f738672107428a3",
      "tree": "4a8125751858323656c1f8afdf927c508926ade2",
      "parents": [
        "8ed3e40be8672aa23ebd2b6c95accf06a2ff8ac4"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Tue Feb 10 20:38:56 2015 +1100"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Wed Feb 11 14:49:56 2015 +1100"
      },
      "message": "Reduce service user permissions\n\nMost of the services create the service user with the admin permission.\nThis is unnecessary for token validation and they should be restricted\nto only having the service role.\n\nChange-Id: Id7a9366d2c6a36139240f64371002362dc2d8d3b\n"
    },
    {
      "commit": "85ff5323ff95106eb18c1c6bfd71d75f3980c370",
      "tree": "ccbf706b448442635a6430871ea42cf8de5c5368",
      "parents": [
        "0a52f5597e436a8d2c7253a6967bfc4863c64fe7"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Wed Jan 28 14:28:01 2015 +1000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Mon Feb 09 14:36:20 2015 +1100"
      },
      "message": "Isolate creating service users\n\nThe code for creating service users is almost exactly the same. Abstract\nthis into a function that can be reused and standardized.\n\nChange-Id: I3a4edbff0a928da7ef9b0097a5a8d508fdfab7ff\n"
    },
    {
      "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": "70157976aec6adf26ac0b3734d2017e2356efd75",
      "tree": "e3e9fb8a528fab333d9ebdd9c97c79b58e241898",
      "parents": [
        "3f80eb59a40250dc66f5c25295c725d3680f3d6e",
        "ec89fa039bb115bce8dc40c4b72359c07e487a3a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Feb 06 05:35:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Feb 06 05:35:56 2015 +0000"
      },
      "message": "Merge \"Remove --skip-redirect form the tgtd service restart\""
    },
    {
      "commit": "d84d93d8ae343faca68505b5918c7866cb092318",
      "tree": "d27631c7b539dfc91a9d4348b369b237abbf6f15",
      "parents": [
        "b43b3595061ce3138889ac78ded0eebbb144e4db",
        "c070a3dbb5c52fb9099bd6cec477ba3d0a75760a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jan 29 22:55:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jan 29 22:55:50 2015 +0000"
      },
      "message": "Merge \"Init default lvm volume group only if required\""
    },
    {
      "commit": "ec89fa039bb115bce8dc40c4b72359c07e487a3a",
      "tree": "3f192b1dfe98a99532e28a589d8465fc1cc6ed14",
      "parents": [
        "e605b39400b7cf9b3114249a88773bb6433f3756"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Thu Jan 29 11:16:00 2015 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Thu Jan 29 11:17:42 2015 +0100"
      },
      "message": "Remove --skip-redirect form the tgtd service restart\n\nskip-redirect was intruduced with the first commit related\nto cinder support, nobody remembers why was this undocumented option\nthere those times.\n\nChange-Id: If579a93090392327bce96ddd1b562977edf762de\n"
    },
    {
      "commit": "51ceb0da0afb38c76b36a617d1118b061a05264a",
      "tree": "46df3fae2c83e3bb0660a0051aaf587260e00933",
      "parents": [
        "48d24e6784cc36e53bbdc4b1659050e5f1cb06c0",
        "1f316beb2052b715f077ef42279361026d1a24c3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jan 29 05:54:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jan 29 05:54:15 2015 +0000"
      },
      "message": "Merge \"Remove rhel6 and py26 support\""
    },
    {
      "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": "c070a3dbb5c52fb9099bd6cec477ba3d0a75760a",
      "tree": "fb4379b20d08bd5651416b6a5e4994e27c53e673",
      "parents": [
        "4764cffd5a97690ca3ca91501d30cc5c8c93ba20"
      ],
      "author": {
        "name": "Maru Newby",
        "email": "marun@redhat.com",
        "time": "Tue Jan 27 17:44:44 2015 +0000"
      },
      "committer": {
        "name": "Maru Newby",
        "email": "marun@redhat.com",
        "time": "Tue Jan 27 19:09:02 2015 +0000"
      },
      "message": "Init default lvm volume group only if required\n\nA recent patch [1] added support for lvm ephemeral storage for nova,\nbut at the cost of initializing a default lvm volume group even if it\nwas not required.  This change ensures that init of the default volume\ngroup is only performed when nova and/or cinder are configured to use\nlvm.\n\n1: https://review.openstack.org/#/c/132333\n\nChange-Id: I7634ca0ed0ffe1b13464e4d66744918f85149f2e\nCloses-Bug: #1414820\n"
    },
    {
      "commit": "1f316beb2052b715f077ef42279361026d1a24c3",
      "tree": "fedb4063e69caff48b005ccc7102a47aec971f55",
      "parents": [
        "55383f1a9bb2538b3e6add6dd9bf38080b910492"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Mon Jan 26 16:39:57 2015 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Tue Jan 27 09:22:52 2015 +0100"
      },
      "message": "Remove rhel6 and py26 support\n\nel6 is shipped with Python 2.6.x which is not expected\nto be supported with the openstack kilo release.\n\nFor el6 support we need to do lot of thing differently,\nwhich makes the code more complicated.\n\nThis change removes el6 and py26 support from devstack.\n\nThis change also removed a discontinued (1 year ago)\nopenSUSE 12.2 code path, which used a similar codepath as el6.\n\nSeveral comment related to el6 also removed or modified.\n\nChange-Id: Iea0b0c98a5e11fd85bb5e93c099f740fe05d2f3a\n"
    },
    {
      "commit": "0b9e76f280208b5b5ad54bb6fbc4133e63037286",
      "tree": "66d8d84cd17a5ac86d4a8ccec8754394184c6666",
      "parents": [
        "1acfc028a6eaf60ea36d23c0e9f5d4f7b318e66c"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Wed Jan 21 13:46:59 2015 -0700"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Thu Jan 22 12:27:58 2015 -0700"
      },
      "message": "Auto add a cinder lvm.conf file\n\nWe have a number of issues where LVM scan commands hang during\ntest runs.  Looking closer at this with strace it turns out\nthat what seems to be happening is that we\u0027re scanning all of the\ndevices on the node, this includes the loop devices for swift and\nother projects as well as the Cinder devices that are being attached\nto the system during the test.\n\nThis is particularly messy for example when we issue a VG or LV scan\non a device like /dev/vdb and at the same time issue a detach.  The\nresult is LVM scan commands hanging waiting for timeout.\n\nThis patch adds a function to the cinder_backend/lvm module which\nis called as the last part of cinder init.  If Cinder LVM is in use\nas per cinder.conf this function will copy the default\n/etc/lvm/lvm.conf to /etc/cinder/lvm.conf and use the cinder.conf file\nand PVS to create filters so that ONLY the devices actually being used\nby Cinder are included in scans.\n\nThere are two pieces to this fix; the first is to properly setup an\nlvm.conf file with filters.  The second step is to merge the Cinder\nchange that modifies the Cinder LVM commands to specify the lvm.conf\nfile usage.\n\nThe Cinder part of this fix can be found here:\n    https://review.openstack.org/#/c/148747/\n\nChange-Id: I962b6e21cbfb6f5612b6c973053d86828ca8071a\nPartial-Bug: #1373513\n"
    },
    {
      "commit": "955f80a7efe6d5c78fb80d957f63803ef3c0486c",
      "tree": "80931baf547c97897f511eef060783aa52177178",
      "parents": [
        "d4a81a895ebd505b82ada0278d7b388924577ff0",
        "157c84b8766ae67f6868f26505ce9a5d7291730b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 20 15:44:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 20 15:44:07 2015 +0000"
      },
      "message": "Merge \"Enforce UTF-8 encoding when creating databases\""
    },
    {
      "commit": "d470867f08a2be3c30c66d9519a95eb5801cfbc9",
      "tree": "41afbec58aab34f7ecf6f3c1e84f0acd4edb7ef5",
      "parents": [
        "62002dd88b7909ac249face4243e1aae03745a01"
      ],
      "author": {
        "name": "Daniel Genin",
        "email": "Daniel.Genin@jhuapl.edu",
        "time": "Fri Oct 31 15:01:29 2014 -0400"
      },
      "committer": {
        "name": "Daniel Genin",
        "email": "Daniel.Genin@jhuapl.edu",
        "time": "Mon Jan 19 11:51:16 2015 -0500"
      },
      "message": "Adds support for LVM ephemeral storage in Nova\n\nDevStack currently lacks support for LVM ephemeral storage in Nova.\nThis support is important for testing of Nova\u0027s LVM backend. The\nproposed change adds a default volume group, to be shared by Cinder\nand Nova. It also adds a configuration option NOVA_BACKEND, which\nmust be LVM if it is set, that determines whether Nova should be\nconfigured to use LVM ephemeral storage.\n\nChange-Id: I4eb9afff3536fbcd563939f2d325efbb845081bb\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": "f3c2eaa183affb1c0a3c16db684eab935d899fd3",
      "tree": "d7addc5fff9a6b5d738320f2c10dae2b9c69dc86",
      "parents": [
        "22fd69e23234b6c97ab7fc28b21d499ac0f35aaf",
        "cecbd1ff6fa56052018422e4892b9f58239d12b3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Jan 14 18:50:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Jan 14 18:50:29 2015 +0000"
      },
      "message": "Merge \"delete cinder configuration file before config it\""
    },
    {
      "commit": "afc1423e70074762e5c8d74b7295b9e55f91a44c",
      "tree": "9ec7fbcd6491822356572c1e0e9d5f4f8eb58767",
      "parents": [
        "29e34f7c9fe78a2914da1c8e1631750dd9b4d42b"
      ],
      "author": {
        "name": "git-harry",
        "email": "git-harry@live.co.uk",
        "time": "Thu Jan 08 17:37:40 2015 +0000"
      },
      "committer": {
        "name": "git-harry",
        "email": "git-harry@live.co.uk",
        "time": "Thu Jan 08 17:47:47 2015 +0000"
      },
      "message": "Change default nova service name in cinder.conf\n\nIn cinder the config options nova_catalog_info and\nnova_catalog_admin_info define values to be matched when searching for\nthe correct compute service in the catalog.\n\nThe commit 5ad15c040fdc115bca9efb1c952279988a2a48b3 in the cinder\nproject has changed these defaults.\n\nThis commit sets the options in cinder.conf to the values set by\ndevstack.\n\nChange-Id: I2a0b09c34fac5f63a5cdbbe05761a0857f243465\nCloses-Bug: #1408734\n"
    },
    {
      "commit": "cecbd1ff6fa56052018422e4892b9f58239d12b3",
      "tree": "ecbd554ed0d2e2b07c6d868a7ede77162b97415a",
      "parents": [
        "5c0a3cfb71ef8c8faca92c19e4eee4968eb309e3"
      ],
      "author": {
        "name": "Yalei Wang",
        "email": "yalei.wang@intel.com",
        "time": "Mon Jan 05 17:05:47 2015 +0800"
      },
      "committer": {
        "name": "Yalei Wang",
        "email": "yalei.wang@intel.com",
        "time": "Tue Jan 06 12:56:37 2015 +0800"
      },
      "message": "delete cinder configuration file before config it\n\nSome misleading configuration item will remain if we don\u0027t delete the cinder\nconf everytime before we configure it.\n\nChange-Id: Iab6a5d7bc5fdcb05b28d24b0419c0bf380a140c1\nCloses-bug: #1405301\n"
    },
    {
      "commit": "157c84b8766ae67f6868f26505ce9a5d7291730b",
      "tree": "2335d93852b26d620b8c2270164c69d6879b596c",
      "parents": [
        "5c0a3cfb71ef8c8faca92c19e4eee4968eb309e3"
      ],
      "author": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Mon Oct 06 13:29:39 2014 +0200"
      },
      "committer": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Mon Jan 05 15:57:23 2015 +0100"
      },
      "message": "Enforce UTF-8 encoding when creating databases\n\nWe use InnoDB everywhere, so there should be no issues with long unicode\nkeys. Dropped charset parameter for recreate_database since it\u0027s not\nneeded anymore.\n\nChange-Id: Ib768402a9337c918309030a92ab81da17269f4f6\n"
    },
    {
      "commit": "1eb4c6a3753fad0166359fff417f63f028ab871d",
      "tree": "697da0cbe72b384aae747de51cc4b66391fc1678",
      "parents": [
        "fe2f9868164d169c4170cc41285247dd20a39092"
      ],
      "author": {
        "name": "gong yong sheng",
        "email": "gong.yongsheng@99cloud.net",
        "time": "Wed Dec 24 09:21:01 2014 +0800"
      },
      "committer": {
        "name": "gong yong sheng",
        "email": "gong.yongsheng@99cloud.net",
        "time": "Mon Dec 29 12:21:51 2014 +0800"
      },
      "message": "remove brackets around boolean condition expression\n\nChange-Id: Ia550d4603d9520ddea84a144e5e042903456d96d\nCloses-Bug: 1405319\n"
    },
    {
      "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": "7d0a0f7d48222369f36a1a5a27a39c45430c9615",
      "tree": "a4690d1e32143dad2ffb4826b1b9b45a7ca7c148",
      "parents": [
        "9bfdea87a6ceea667a3c674215099ce8a967a3c2"
      ],
      "author": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Mon Nov 17 00:03:47 2014 -0500"
      },
      "committer": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Mon Nov 17 00:03:47 2014 -0500"
      },
      "message": "Remove hardcoded protocol from backup_swift_url\n\nUse SWIFT_SERVICE_PROTOCOL when configuring backup_swift_url for\ncinder configuration.\n\nChange-Id: I09de62e8deca86b473cee969ba2c5919d4f9892d\nCloses-Bug: #1393554\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": "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": "4b109297d5b3dcdcdc2c7e4df1a1571cc674ee9f",
      "tree": "fdb14f0250d316d8e16f2de44f7a60b439ef59f6",
      "parents": [
        "58f1405665f72ae482aa34e09049a2847be1570e"
      ],
      "author": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Tue Oct 21 18:17:48 2014 -0400"
      },
      "committer": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Tue Oct 21 18:17:48 2014 -0400"
      },
      "message": "Configure glance CA certificate path in cinder\n\nA new configuration option is available in cinder for setting\nthe CA path. Configure this option in devstack when native SSL\nor TLS proxy is configured.\n\nChange-Id: I2cf9a3b8ba8e4896bd98efe0fb6f7d62fb279d90\nCloses-Bug: 1384267\n"
    },
    {
      "commit": "18d4778cf7bffa60eb2e996a13c129c64f83575f",
      "tree": "d6d934b05026d32d6942b34a5e3a359202b3996c",
      "parents": [
        "d60c10d6dbe44445aaab9e3fcc0127e39e989f40"
      ],
      "author": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Wed Mar 19 17:47:42 2014 -0400"
      },
      "committer": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Wed Sep 24 18:36:37 2014 -0400"
      },
      "message": "Configure endpoints to use SSL natively or via proxy\n\nConfigure nova, cinder, glance, swift and neutron to use SSL\non the endpoints using either SSL natively or via a TLS proxy\nusing stud.\n\nTo enable SSL via proxy, in local.conf add\n\nENABLED_SERVICES+\u003d,tls-proxy\n\nThis will create a new test root CA, a subordinate CA and an SSL\nserver cert. It uses the value of hostname -f for the certificate\nsubject. The CA certicates are also added to the system CA bundle.\n\nTo enable SSL natively, in local.conf add:\n\nUSE_SSL\u003dTrue\n\nNative SSL by default will also use the devstack-generate root and\nsubordinate CA.\n\nYou can override this on a per-service basis by setting\n\n\u003cSERVICE\u003e_SSL_CERT\u003d/path/to/cert\n\u003cSERVICE\u003e_SSL_KEY\u003d/path/to/key\n\u003cSERVICE\u003e_SSL_PATH\u003d/path/to/ca\n\nYou should also set SERVICE_HOST to the FQDN of the host. This\nvalue defaults to the host IP address.\n\nChange-Id: I36fe56c063ca921131ad98439bd452cb135916ac\nCloses-Bug: 1328226\n"
    },
    {
      "commit": "0595237e8adee0320dbcabe5647f7aa179378741",
      "tree": "2bfac494b50c567e9816778b3f6cbf0b80d8012d",
      "parents": [
        "d13eb8ec4066c2f52313351053021e456de60883"
      ],
      "author": {
        "name": "Brant Knudson",
        "email": "bknudson@us.ibm.com",
        "time": "Fri Sep 19 17:22:22 2014 -0500"
      },
      "committer": {
        "name": "Brant Knudson",
        "email": "bknudson@us.ibm.com",
        "time": "Sun Sep 21 11:18:01 2014 -0500"
      },
      "message": "Function for auth_token middleware config\n\nEach project was configuring the auth_token middleware using several\nlines of inisets. Since all the projects should configure the\nauth_token middleware in the same way create a function and call it.\n\nChange-Id: I3b6727d5a3bdc0ca600d8faa23bc6db32bb32260\n"
    },
    {
      "commit": "05bd7b803d87bbdd1a6f11cfd278eec319c819ea",
      "tree": "52a763035448ccc5668e52052b7b495a3e26da9f",
      "parents": [
        "7672ad1dbc00ec5ff80f3aa670404e413e86e506"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Sep 16 17:25:33 2014 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Sep 19 09:06:21 2014 -0500"
      },
      "message": "Set default API_WORKERS\n\nSet the API_WORKERS default to control memory usage. Maximum is nproc / 2 and\nminimum is 2.\n\n* Also updates https://review.openstack.org/#/c/117517/ to remove the\n  conditional test as API_WORKERS should always be set.\n* Update https://review.openstack.org/#/c/109058/ for ceilometer to use API_WORKERS\n\nThe following reviews can move forward either as-is or with minor tweaks:\n* Keystone: https://review.openstack.org/#/c/121384/ - remove the if check\n* Swift: https://review.openstack.org/#/c/121456/ - unabandon, the default\n  to 1 is fine, or remove it to match the others.\n* Trove: https://review.openstack.org/#/c/121438/ - remove the if check\n\nhttps://etherpad.openstack.org/p/devstack-workers has the details\n\nChange-Id: Id28d72ebf01c88b7df301edf7d1dd7ec23fcd0d6\n"
    },
    {
      "commit": "efa18c73ab46dace033fba11edf6c32eb75e07db",
      "tree": "fa6e11f2c306bd7a4fbcc954eb1de308c9755b26",
      "parents": [
        "b325ea28d24f26fb8c31b67378a9545a4c68803d",
        "2f27a0ed3c609bfcd6344a55c121e56d5569afc9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Sep 13 12:38:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Sep 13 12:38:34 2014 +0000"
      },
      "message": "Merge \"Replace screen_it() with run_process() throughout\""
    },
    {
      "commit": "d577fdc7942b5cb16c42c0c1358f008927cbc4cc",
      "tree": "d8d1e411a47806d88e08d735d7f745d6fdc63c8c",
      "parents": [
        "e2d07954039726ad5d6602066a44a6d817cdf111",
        "2f72050ace4055fb8190257be910aadd83786ebf"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Sep 13 07:18:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Sep 13 07:18:05 2014 +0000"
      },
      "message": "Merge \"Allow setting the number of workers to be used.\""
    },
    {
      "commit": "2f27a0ed3c609bfcd6344a55c121e56d5569afc9",
      "tree": "abe0c02c1d2fd9d57f6b786ff8105896969d0e3c",
      "parents": [
        "58deafcd63ae996e0973c864e249c4a3cb82a74f"
      ],
      "author": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Tue Sep 09 13:46:02 2014 +0100"
      },
      "committer": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Thu Sep 11 18:59:39 2014 +0100"
      },
      "message": "Replace screen_it() with run_process() throughout\n\nrun_process will use screen if USE_SCREEN\u003dTrue (the default),\notherwise it will simply start the requested service. Therefore\nwherever screen_it used, run_process can be instead.\n\nWhere stop_screen was found it has been replaced with stop_process.\n\nA tail_log function has been added which will tail a logfile in a\nscreen if USE_SCREEN is True.\n\nlib/template has been updated to reflect the use of the new\nfunctions.\n\nWhen using sg the quoting in run_process gets very complicated.\nTo get around this run_process and the functions it calls accepts\nan optional third argument. If set it is a group to be used with sg.\n\nChange-Id: Ia3843818014f7c6c7526ef3aa9676bbddb8a85ca\n"
    },
    {
      "commit": "f94854811cc89e970a944d339eaa829e36c399dd",
      "tree": "8670a9147734f4b856bf62754c69b11982a2de65",
      "parents": [
        "319054f3bb3d2c62aeedd59109a956e5b8f14e6e",
        "3159a821c2e0662278746c5311e187bcfd4d8b75"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Sep 10 12:00:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Sep 10 12:00:40 2014 +0000"
      },
      "message": "Merge \"Run processes without screen\""
    },
    {
      "commit": "2f72050ace4055fb8190257be910aadd83786ebf",
      "tree": "976648377aded742e2fbf464432cb06f87dfce11",
      "parents": [
        "4bd4264960917b6bcd197326020a8a894d1d47f4"
      ],
      "author": {
        "name": "Bob Ball",
        "email": "bob.ball@citrix.com",
        "time": "Thu Aug 28 14:50:04 2014 +0100"
      },
      "committer": {
        "name": "Bob Ball",
        "email": "bob.ball@citrix.com",
        "time": "Tue Sep 09 15:54:36 2014 +0100"
      },
      "message": "Allow setting the number of workers to be used.\n\nEnvironments with large numbers of CPUs will create a large\nnumber of workers which can have an unnecessarily large\nimpact on memory usage, particular where you know how many\nworkers are needed.\n\nChange-Id: Ie4bb075310a61a0873c9e56e4974600dbb4794a1\n"
    },
    {
      "commit": "3159a821c2e0662278746c5311e187bcfd4d8b75",
      "tree": "619916b47ee265729ca2c120870addd5c3b13e84",
      "parents": [
        "4bd4264960917b6bcd197326020a8a894d1d47f4"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Aug 27 14:13:58 2014 -0500"
      },
      "committer": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Tue Sep 09 13:54:01 2014 +0100"
      },
      "message": "Run processes without screen\n\nThis introduces new run_process() and screen_service() functions and sets the\ngroundwork to change how DevStack starts services.  screen_service() is simply a\ndirect call to the screen portion of the old screen_it() function and is intended\nto run commands that only need to run under screen, such as log file watchers.\n\nrun_process() is a replacement for screen_it() (which remains until all of the\nservices are updated).  The usage is similar but requires updates to every current\nscreen_it() call to remove everything that requires the command to be interpreted\nby a shell.\n\nThe old run_process() and _run_process() functions are still present as\nold_run_process() and _old_run_process() to support the deprecated screen_it()\nfunction.  These will all go away in the future once all services have been\nconfirmed to have been changed over.\n\nThere is a similar new set of stop process functions stop_process() and\nscreen_stop_service().  The old screen_stop() will also remain for the deprecation\nperiod.\n\nAs an initial test/demostration this review also includes the changes for\nlib/cinder to demonstrate what is required for every service.\n\nI included the scripts I used to test this; tests/fake-service.sh and\ntests/run-process.sh are quite rough around the edges and may bite.  They should\nmature into productive members of the testing ecosystem someday.\n\nChange-Id: I03322bf0208353ebd267811735c66f13a516637b\n"
    },
    {
      "commit": "a25922b9616f74f74049368e8f4e5de11b851921",
      "tree": "1eb49763bfaa4eb34b7163a609dbdedfca628631",
      "parents": [
        "464d48ab32eabbd2106024bb019bd042bb479490"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Aug 28 09:29:47 2014 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Aug 28 09:29:51 2014 -0500"
      },
      "message": "Fix regression in Cinder volume type creation\n\nThe local-vars cleanup (Iedeafa15def1fa26d4ddcbc5f670129f66e38b9d)\nspanned (and missed) this fix (Ib35ffc09f6582354010ac8ca35da581ea508877a)\nfor volume type creation.\n\nChange-Id: I2b95cbc946727d7708283eca0c07ba1eaddf5db8\n"
    },
    {
      "commit": "e8a35acd1d6ef877f9723fc4cc9b766356431b6f",
      "tree": "6341c55bd67f7b40cf223597bd2cf2ab8bf68d87",
      "parents": [
        "b939caea45e2b43f36a831837821ad466451f7ed"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jul 25 12:37:41 2014 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Aug 19 19:12:27 2014 -0500"
      },
      "message": "Clean up local variable usage - cinder\n\nChange-Id: Iedeafa15def1fa26d4ddcbc5f670129f66e38b9d\n"
    },
    {
      "commit": "57f8b523263524c4156e86f9f5cb29956fe262e4",
      "tree": "c445c1d9fff8271504176423ca92c2d35adee25a",
      "parents": [
        "735f4d340f5772bac29c1aa23fdfb5e2df500ca3"
      ],
      "author": {
        "name": "Ramy Asselin",
        "email": "ramy.asselin@hp.com",
        "time": "Fri Aug 15 16:17:21 2014 -0700"
      },
      "committer": {
        "name": "Ramy Asselin",
        "email": "ramy.asselin@hp.com",
        "time": "Fri Aug 15 16:21:40 2014 -0700"
      },
      "message": "Allow cinder types to be created without be file\n\n3rd party ci tests have not whitelisted errors:\n\"Not Whitelisted Volume type with name * could not be found.\"\n\nThese are creating noise. Instead of requiring a backend file\nfor each vendor, remove the if statement and just create the\nnecessary type for each defined back-end.\n\nChange-Id: Ic88efa20eb53864e4f3d22d3306841797dcd118d\n"
    },
    {
      "commit": "6a4aa78fa3728f1b0a98850f432211da5c8caedf",
      "tree": "f0ae118823d82d94d4498f9402ba51512f6c5355",
      "parents": [
        "3348ca40f5c82250e8fd8022165ad544f4dcfff3"
      ],
      "author": {
        "name": "Matt Riedemann",
        "email": "mriedem@us.ibm.com",
        "time": "Fri Jul 25 13:35:53 2014 -0700"
      },
      "committer": {
        "name": "Matt Riedemann",
        "email": "mriedem@us.ibm.com",
        "time": "Fri Jul 25 14:46:12 2014 -0700"
      },
      "message": "Fix cinder volume type creation and rename variable\n\nCommit 7062b12b9b91a1eb405d7079c62b62b0de59109f introduced\na bug where the default_volume_type is set to \u0027lvm\u0027 but\nthat is not the volume-type that\u0027s actually created, that\nis \u0027lvmdriver-1\u0027 in gate runs, so we see a ton of\nVolumeTypeNotFoundByName for the \u0027lvm\u0027 volume type in the\ncinder-api logs.\n\nThis simply sets the default_volume_type to the volume\ntype that\u0027s created in the create_volume_types function.\n\nAlso renames the default_type variable to default_name to\nbe consistent with variable naming in the rest of the\ncinder script.\n\nChange-Id: Ib35ffc09f6582354010ac8ca35da581ea508877a\nCloses-Bug: #1348786\n"
    },
    {
      "commit": "6dd8a8bee402a6be683075e0669a010a279950ae",
      "tree": "863dda081a4cf9cbf78f911ac66178b7ffc9f11e",
      "parents": [
        "2bb05fdb84aa472299efc714b7c1114a25a3ada2"
      ],
      "author": {
        "name": "Gael Chamoulaud",
        "email": "gchamoul@redhat.com",
        "time": "Tue Jul 22 01:12:12 2014 +0200"
      },
      "committer": {
        "name": "Gael Chamoulaud",
        "email": "gchamoul@redhat.com",
        "time": "Tue Jul 22 17:29:04 2014 +0200"
      },
      "message": "Users in service group should not have email addresses\n\nChange-Id: Ieed9dffce5cf1e735e482dd3494ac1e103b50955\nCloses-Bug: 1185201\nSigned-off-by: Gael Chamoulaud \u003cgchamoul@redhat.com\u003e\n"
    },
    {
      "commit": "7062b12b9b91a1eb405d7079c62b62b0de59109f",
      "tree": "e406140ff6d6301b753fa8f66c24e8bca2fe6e61",
      "parents": [
        "5e93727a23e3922efcdd80600a0b7fce5adb62cf"
      ],
      "author": {
        "name": "Sébastien Han",
        "email": "sebastien.han@enovance.com",
        "time": "Wed Jul 16 09:37:41 2014 +0200"
      },
      "committer": {
        "name": "Sébastien Han",
        "email": "sebastien.han@enovance.com",
        "time": "Wed Jul 16 15:36:49 2014 +0200"
      },
      "message": "Fix default_volume_type for Cinder multi backend\n\nThe default_volume_type option doesn\u0027t support comma separated\narguments. We can only select one default volume type.\nWe have a variable that contains the default volume type, so we simply use it.\n\nCloses-Bug: 1342569\n\nChange-Id: Ibd080442f00f3d446ec374fc5906f0778d449007\nSigned-off-by: Sébastien Han \u003csebastien.han@enovance.com\u003e\n"
    },
    {
      "commit": "097183356e60f6375061914e89816c8faafb3a6f",
      "tree": "a3f154b2aaa24b92ac875ad0076a7b44d1cb21f8",
      "parents": [
        "0ae54daa4a34502f16cc1751d6ddf8f5f9525171"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Jul 03 10:46:57 2014 -0500"
      },
      "committer": {
        "name": "Sébastien Han",
        "email": "sebastien.han@enovance.com",
        "time": "Tue Jul 15 16:03:42 2014 +0200"
      },
      "message": "Support multiple Cinder backend types\n\nThis is the first step in supporting multiple Cinder backend types at\nonce.  It initially converts the existing hard-coded multi-lvm support\nto a new cinder_backends driver form.  Eventually the cinder_plugins\nwill be converted to this form so they can be enabled more than just\none at a time using CINDER_ENABLED_BACKENDS.\n\nThe default configuration should be identical to the previous defaults,\nincluding for both True and False values of CINDER_MULTI_LVM_BACKEND.\n\nThe existing cinder_plugins are expected to be removed when this is\ncomplete. They should continue to work until they have been converted.\n\nAdd wait for c-api to ensure it is started before continuing.\n\nChange-Id: I93b8ef32832269d730c76a6dc24ddb4f20c6d9df\n"
    },
    {
      "commit": "0abde393c5e2d15e840c0321b736e22291b59780",
      "tree": "a78ecff37749175c95a5cbc7eae78cfecd02d1c8",
      "parents": [
        "c06c9e1f904a81e0fef646273b07510e90995364"
      ],
      "author": {
        "name": "Bartosz Górski",
        "email": "bartosz.gorski@ntti3.com",
        "time": "Fri Feb 28 14:15:19 2014 +0100"
      },
      "committer": {
        "name": "Bartosz Górski",
        "email": "bartosz.gorski@ntti3.com",
        "time": "Tue Jul 01 14:58:35 2014 +0000"
      },
      "message": "Adds support for multi-region\n\nChange-Id: Ib85fe7cb375692b04aca4c46f61ba7e1fbfa501b\nImplements: blueprint multi-region\n"
    },
    {
      "commit": "f64f43b533b5bd3ef58b25bdabecd6789c6172ad",
      "tree": "b5a3362e6c634036b55ce594728db9f781be9e63",
      "parents": [
        "c6dc3deb2571f08b224c9a11eac975da2ef59f5a"
      ],
      "author": {
        "name": "Mike Perez",
        "email": "thingee@gmail.com",
        "time": "Wed Jun 25 08:51:31 2014 -0700"
      },
      "committer": {
        "name": "Mike Perez",
        "email": "thingee@gmail.com",
        "time": "Wed Jun 25 08:53:55 2014 -0700"
      },
      "message": "Default cinder enable_v1_api to true\n\nAs of Juno, Cinder will be deprecating the Cinder V1 API and setting it\nto not be enabled by default. We\u0027ll make it enabled in devstack to\ncontinue tests while it\u0027s supported.\n\nChange-Id: Ia09eed0375a73c69a29b1aa379b5bd9fd3a1f5b7\n"
    },
    {
      "commit": "cab1eb12c667d218a4de76ef5e546bfc05efcd97",
      "tree": "aaaca831b59223bb10a754a40c7888eaad845ecd",
      "parents": [
        "3cb9b434a7e0a0d8e9673947035b31a10e432de1",
        "dc0938e1c9f8303cc162f074eca4312d91a88b17"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jun 20 16:20:16 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jun 20 16:20:16 2014 +0000"
      },
      "message": "Merge \"cinder: use non-deprecated notification_driver\""
    },
    {
      "commit": "dc0938e1c9f8303cc162f074eca4312d91a88b17",
      "tree": "cb35d294b39bb34a04d5610ee6ee472825a6f5e0",
      "parents": [
        "4fbb8137af8c3e0e5805db7337651048f11b6bb2"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Tue Jun 17 06:37:43 2014 +0100"
      },
      "committer": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Tue Jun 17 06:37:43 2014 +0100"
      },
      "message": "cinder: use non-deprecated notification_driver\n\nCinder has been using oslo.messaging since Icehouse so it should be\nusing \u0027messaging\u0027 as its notification driver and not the now deprecated\nfull python path to the oslo-incubator notification driver.\n\nChange-Id: I3edca1ff54e51b464cc1b23935c8530e2e242fee\n"
    },
    {
      "commit": "3561d7f9edc6dd0d00be097a78b83f38aa8cbf5f",
      "tree": "8025c7ada1e73ed26ada7e9bea9c000b112d0283",
      "parents": [
        "7006105997a7d9264dde69b55d109f52cd4c015e"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Wed May 21 17:18:43 2014 +1000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Mon Jun 16 15:16:48 2014 +1000"
      },
      "message": "Use identity_uri instead of auth fragments\n\nauth_token middleware now accepts a standard URL string as the parameter\nidentity_uri instead of specifying protocol etc individually. Change the\nservices over to use this.\n\nAlso changes over some other places in which the auth fragments are used\nindividually to the new variables and fixes up some misconfigurations of\nauth_token.\n\nidentity_uri option was release in keystoneclient 0.8.0\n\nChange-Id: Iac13bc3d08c524a6a0f39cdfbc1009e2f5c45c2a\n"
    },
    {
      "commit": "55c0b225e22a40e51c30215825f266dadb635513",
      "tree": "4550b445a095bfa231b9d552eda823e9002f8fd8",
      "parents": [
        "ced4ba63cdbc727207d18104c123b3511b35cb68"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Fri May 30 15:40:04 2014 +0000"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Fri May 30 15:46:13 2014 +0000"
      },
      "message": "Remove copy of cinder.conf.sample file\n\nRather than continue to be bit by conf updates\nfrom external sources, Cinder is going to join\nthe party and cease generation of the sample.conf\nas part of the unit tests.\n\nFirst step however is to not attempt to copy it\nfrom cinder/etc/cinder in the devstack setup.\n\nThis just removes that cp operation, nothing\nin that sample conf was modfied from defaults\nso it wasn\u0027t really doing anything anyway.\n\nChange-Id: I727b1747ff36d775ef881e93e3b9a8528a17a4df\n"
    },
    {
      "commit": "2983474e37d6c97c482e154a1f0d1f60a709915b",
      "tree": "a35a3e15f79325d2d4bd4fa891938c85891da2b7",
      "parents": [
        "0c76039622c65428d97e307b7d0687ae5bd8fa6b"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Sun Mar 09 18:36:42 2014 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Mon Mar 10 19:52:49 2014 +0100"
      },
      "message": "Use the $SERVICE_HOST in backup_swift_url\n\nThe $SERVICE_HOST is used to specify the swift proxy endpoint,\nthe c-bak should use the same endpoint.\n\nChange-Id: Ia815f514839b0d1ec3fb9bb40992637c4f123e06\n"
    },
    {
      "commit": "d5b52ca7557ec1aef71f21c71110455a6aea2505",
      "tree": "4d7d8e528a2c53732017c9609e9693c36e300f8e",
      "parents": [
        "bb2d40b87ca0c1edf583ef957afdd20a2e30f371"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Tue Mar 04 09:23:07 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Tue Mar 04 09:23:07 2014 -0500"
      },
      "message": "fix tgt to use \u0027service\u0027 instead of upstart calls\n\nthe comments in here were largely about oneric, which we don\u0027t\nsupport any more. service is installed in a precise environment,\nand will support debian and the upcoming transition to systemd\nbetter, so use that instead.\n\nChange-Id: If15493549a8c93a7387df9b3bba31443aed46995\n"
    },
    {
      "commit": "aee18c749b0e3a1a3a6907a33db76ae83b8d41d9",
      "tree": "01a8ab5abb9867986f3e848918abd9e749b691cd",
      "parents": [
        "0ed4af02da0bd4a0f757dd8c2156913e6c7a724c"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 21 15:35:08 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 28 07:59:03 2014 +1100"
      },
      "message": "Enforce function declaration format in bash8\n\nCheck that function calls look like ^function foo {$ in bash8, and fix\nall existing failures of that check.  Add a note to HACKING.rst\n\nChange-Id: Ic19eecb39e0b20273d1bcd551a42fe400d54e938\n"
    },
    {
      "commit": "3b57829ece7aa231770b640afd6da961dae2fc1c",
      "tree": "1e2740f022f846db6ed9a6a3a9fe4ccd1273dbff",
      "parents": [
        "e26b7bb415cc75406a2d0d3914a0084407cc373c"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Feb 26 14:52:02 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Feb 26 14:55:20 2014 +1100"
      },
      "message": "Don\u0027t use --skip-redirect for cinder restart on rhel6\n\nRHEL6 doesn\u0027t support this flag so the restart fails.  Not exactly\nsure why it is required, seems unchagned from the initial\ncommit 67787e6b4c6f31388cbee6d83b67371b31c443d4\n\n(found running stack.sh with -e per [1])\n\n[1] https://review.openstack.org/#/c/71996/\n\nChange-Id: Ib34c3663409d7b96b932286cb5a6974e940075d3\n"
    },
    {
      "commit": "19685428e3d3e51ff88aa5254f7c27d476053798",
      "tree": "dac1d9632b47c4e9fbc176a9ea92d92e4db27e10",
      "parents": [
        "824fac2cc740fa83086ac65ff8a5657eafbc1166"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Fri Jan 24 13:02:26 2014 -0600"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Fri Feb 14 21:30:57 2014 -0600"
      },
      "message": "Change most keystoneclient commands to openstacklient in libs\n\nmigrated most keystoneclient commands from the following libs:\n ceilometer\n cinder\n ironic\n keystone\n marconi\n neutron\n nova\n savanna\n swift\n trove\n\nAlso need to set and unset openstackclient specific environment\nvariables from stack.sh\n\nChange-Id: I725f30bc08e1df5a4c5770576c19ad1ddaeb843a\n"
    },
    {
      "commit": "1d081ebc2b48846b2adb49e975bda16eec940226",
      "tree": "7d10e26cbde88e7b7e675089a68ba6c6bb0e8d45",
      "parents": [
        "20047053be5c697d8113e4dbd3119c7880599680",
        "d5d4974cb72880799d7ec736237ca01eacb2f6da"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Feb 15 02:21:13 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Feb 15 02:21:13 2014 +0000"
      },
      "message": "Merge \"Cleanup cinder-rootwrap support\""
    },
    {
      "commit": "f0029532f8302ffc22a32923501b0a9be9b9a049",
      "tree": "3d528faa675cda590df632dfc1496bc9861c786e",
      "parents": [
        "5b0438f8ed3a1038f3b260c118b7652a865c1709",
        "d0860cc26d78c3f1c70b332ecc793442a1c8048d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Feb 12 22:38:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Feb 12 22:38:53 2014 +0000"
      },
      "message": "Merge \"Replace custom cinder driver configs\""
    },
    {
      "commit": "d0860cc26d78c3f1c70b332ecc793442a1c8048d",
      "tree": "e84a3e16837b7f35542776c5708b227a7b03c73b",
      "parents": [
        "b4b9146de289dcc76683a2683fd0bfedccc5a57c"
      ],
      "author": {
        "name": "john-griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Thu Jan 23 11:31:10 2014 -0700"
      },
      "committer": {
        "name": "Walter A. Boring IV",
        "email": "walter.boring@hp.com",
        "time": "Tue Feb 11 11:30:04 2014 -0800"
      },
      "message": "Replace custom cinder driver configs\n\nThe devstack/lib/cinder file has a number of third party\ndriver config options hard-coded in it.  Rather than add\nyet another if driver\u003d\u003d statement here let\u0027s use plugin\nfiles and do something similar to what\u0027s already\nin place for nova_hypervisors and neutron plugins.\n\nThis works the same way folks were implementing their\ndrivers already, the key is to use a CINDER_DRIVER\nvariable in your localrc file that matches the name\nof the lib/cinder_plugin file to use.\n\nThe existing third party driver entries that were\nin lib/cinder have been migrated to cooresponding\nplugin files.\n\nChange-Id: I4ee51ea542d5aa63879afd5297311a9df727c57f\n"
    },
    {
      "commit": "e4fa72132228688d2fe74dd974fe04b0fe4c3d6b",
      "tree": "b92c3050cd93c4d3d87142708eb30f77b58e2628",
      "parents": [
        "f583a04d739a189da6f3780f83e2ddc61bfe9e22"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Jan 15 15:04:49 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Feb 07 10:06:21 2014 -0600"
      },
      "message": "Begin is_service_enabled() cleanup\n\nThis converts the special cases in the is_service_enabled() function to call\nindividual functions declared by the projects.  This allows projects that\nare not in the DevStack repo and called via the extras.d plugin to handle\nan equivalent service alias.\n\n* Ceilometer\n* Cinder\n* Glance\n* Neutron\n* Nova\n* Swift\n\nTODO: remove the tests from is_service_enabled() after a transition period\n\nPatch Set 2: Rebased\n\nChange-Id: Ic78be433f93a9dd5f46be548bdbd4c984e0da6e7\n"
    },
    {
      "commit": "d5d4974cb72880799d7ec736237ca01eacb2f6da",
      "tree": "4fbf89d851a3aa104ac6024169154c28fdebe255",
      "parents": [
        "116999b221ca78ae95cb9321d1205e28defc2023"
      ],
      "author": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Thu Feb 06 16:00:08 2014 +0100"
      },
      "committer": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Thu Feb 06 16:00:08 2014 +0100"
      },
      "message": "Cleanup cinder-rootwrap support\n\ncinder_rootwrap support in devstack handled a number of now-abandoned\nuse cases:\n\n- no $CINDER_DIR/etc/cinder/rootwrap.d (old-style rootwrap)\n- using oslo-rootwrap instead of cinder-rootwrap (abandoned experiment)\n\nThis change removes unused code paths and aligns\nconfigure_cinder_rootwrap() with configure_nova_rootwrap().\n\nChange-Id: I387808dae0e064cc9c894c74ab78e86124f08dd2\n"
    },
    {
      "commit": "4237f590b7b93117e59f9f777bc70d212969f61a",
      "tree": "d7ce919c2979323408fa137fd13db738eb962a7f",
      "parents": [
        "b160640d47446bf379b3299460c4e76cb6e6c7c6"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Jan 29 16:22:11 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Jan 29 17:25:45 2014 -0600"
      },
      "message": "Generate Tempest service list rather than hard-code it\n\nThe list of services that Tempest used to set its \u0027service_available\u0027\nconfig values was hard-coded. To be plugin-friendly have each\nservice (project) add its name to the TEMPEST_SERVICES variable\nand use that for setting the \u0027service_avilable\u0027 values.\n\nChange-Id: I208efd7fd0798b18ac2e6353ee70b773e84a2683\n"
    },
    {
      "commit": "adfaf0cef01d8e4dc6bb3f7fb0944ef40e14952f",
      "tree": "2a08454a6d8bea5cee327f5a7c0bd2889a78466c",
      "parents": [
        "fd52f0ea99e3141fb4ef54f5b606c886787d93c0",
        "53ffc713b1d352a9ecf701b452e8e6659daf9748"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Jan 26 19:21:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Jan 26 19:21:43 2014 +0000"
      },
      "message": "Merge \"clean.sh updates\""
    },
    {
      "commit": "53ffc713b1d352a9ecf701b452e8e6659daf9748",
      "tree": "1be275cf0ce0660f7f8c1115c7381d9b2bc33b6f",
      "parents": [
        "19bff77d20dcc22cdfe403cdc35c19117ee51393"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Dec 17 11:13:40 2013 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Jan 25 13:26:58 2014 -0600"
      },
      "message": "clean.sh updates\n\n* Clean out data, log and state dirs\n* Include lib/apache to clear is_apache_enabled_service not found error\n* Clean errors removing tgt config files\n\n* Clean errors removing VG backing file in lib/cinder\n\nChange-Id: I33dfde17eb8daaaed7f7e76337fe6a8085a266bf\n"
    },
    {
      "commit": "e5a5fe33e09bd4e2604f86a20b21e78dd7be09b2",
      "tree": "c567cb35835ebefc7640b926363ee35ea79333e4",
      "parents": [
        "ab78dd5cb328c22c2b7dd44f286a2583366bef99",
        "4ad37630a2f938b19697f6e310def046a4dcca48"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jan 13 18:50:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jan 13 18:50:59 2014 +0000"
      },
      "message": "Merge \"Remove duplicated name services\""
    },
    {
      "commit": "3e98388d0716d6eb5da446e5ea5e7f60b50f17a7",
      "tree": "4d121eebb1381900a4ec89b266ea26003861bf19",
      "parents": [
        "babcfa9ad2d6659214e730f2c7a2569046698f7e",
        "9fc8792b0ac7525b4c353b0a55b8b80eabf76e2a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jan 13 14:09:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jan 13 14:09:44 2014 +0000"
      },
      "message": "Merge \"Robustify service shutdown\""
    },
    {
      "commit": "1d8abb95b9cfc6fa014dae539ace60af93ed175b",
      "tree": "93b97f613fef009ea88def8b1acd02a3d07cfbb2",
      "parents": [
        "ec528ecae20fd7d9aea95493b0e9aef169282b60",
        "63e1784354a49ca45bb4ae9465d2cb6dfb31db12"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Jan 12 13:51:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Jan 12 13:51:27 2014 +0000"
      },
      "message": "Merge \"Put cinder rootwrap config in separate function\""
    },
    {
      "commit": "ec528ecae20fd7d9aea95493b0e9aef169282b60",
      "tree": "8324fff780c3cce9765c5238539a193b2386aab2",
      "parents": [
        "cbe79ba27d3d0fccf1e84c8902acc8d9a831d73f",
        "21fe4e76d5453a252e802c5d5f487f88b896decf"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Jan 12 00:16:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Jan 12 00:16:11 2014 +0000"
      },
      "message": "Merge \"Add a flexible API version choice for Cinder, Glance and Heat\""
    },
    {
      "commit": "9fc8792b0ac7525b4c353b0a55b8b80eabf76e2a",
      "tree": "63db600410e41a8d2e617a735727a31f7254d083",
      "parents": [
        "c8c0ead4cacc512e78be66c11ce98fa22fb77a64"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed May 22 17:19:06 2013 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Jan 11 11:46:19 2014 -0600"
      },
      "message": "Robustify service shutdown\n\n* Save PID when using screen in screen_it()\n* Add screen_stop()\n* Call out service stop_*() in unstack.sh functions so screen_stop()\n  can do its thing\n\nCloses-bug: 1183449\nChange-Id: Iac84231cfda960c4197de5b6e8ba6eb19225169a\n"
    },
    {
      "commit": "63e1784354a49ca45bb4ae9465d2cb6dfb31db12",
      "tree": "b5f0f3f310e3edba6bfa31fe6d9a032a53aec3cf",
      "parents": [
        "bd499587945e6f811126eed36337cb14b3d6fcd0"
      ],
      "author": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Fri Jan 10 14:23:03 2014 +0100"
      },
      "committer": {
        "name": "Thierry Carrez",
        "email": "thierry@openstack.org",
        "time": "Fri Jan 10 14:23:03 2014 +0100"
      },
      "message": "Put cinder rootwrap config in separate function\n\nSeparate out Cinder\u0027s rootwrap configuration so that it can be called\nfrom Grenade\u0027s upgrade scripts. This follows the same model as Nova uses\nwith configure_nova_rootwrap() which can be called from Grenade to\nrefresh rootwrap config.\n\nChange-Id: Id808abc2b5754443362b3de4b3453e305d3720f3\n"
    },
    {
      "commit": "25049cd23de0e8055326c668ff119dd8cdf0bae4",
      "tree": "3eb96f72a2e52bddab9fb963b4d676a8db96ddbc",
      "parents": [
        "68f142324d213ec97dbb6af0f0d4e513b7e85fdd"
      ],
      "author": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Thu Jan 09 13:53:52 2014 +0100"
      },
      "committer": {
        "name": "Dirk Mueller",
        "email": "dirk@dmllr.de",
        "time": "Thu Jan 09 13:55:28 2014 +0100"
      },
      "message": "Use --tenant-id, not --tenant_id\n\nChange-Id: I0e3d65d5b69ac82cbf7ee6ffc41ead369af8c126\n"
    },
    {
      "commit": "4ad37630a2f938b19697f6e310def046a4dcca48",
      "tree": "ba45c5d81d89ae8b07e42e433078910a5db97927",
      "parents": [
        "0150d7eb2a160635a47a626f7c9968a8e0dc0254"
      ],
      "author": {
        "name": "Juan Manuel Olle",
        "email": "juan.m.olle@intel.com",
        "time": "Mon Jan 06 15:07:09 2014 -0300"
      },
      "committer": {
        "name": "Juan Manuel Olle",
        "email": "juan.m.olle@intel.com",
        "time": "Mon Jan 06 15:25:31 2014 -0300"
      },
      "message": "Remove duplicated name services\n\nDue to the fact that keystone will not allow services with\nduplicated names, cinder and nova services names were\nchanged\n\nCloses-Bug: #1259425\nChange-Id: I988aef477b418a289426e02e5e108aa57dd1076b\n"
    },
    {
      "commit": "21fe4e76d5453a252e802c5d5f487f88b896decf",
      "tree": "428f12097d21f93d6a40a3b4b0e387b098768fa0",
      "parents": [
        "0150d7eb2a160635a47a626f7c9968a8e0dc0254"
      ],
      "author": {
        "name": "Vincent Hou",
        "email": "sbhou@cn.ibm.com",
        "time": "Thu Nov 21 03:10:27 2013 -0500"
      },
      "committer": {
        "name": "Vincent Hou",
        "email": "sbhou@cn.ibm.com",
        "time": "Mon Jan 06 01:22:57 2014 -0500"
      },
      "message": "Add a flexible API version choice for Cinder, Glance and Heat\n\nThe version of the authentication url is set to v1.0 for some\nprojects by default. We can make it configurable via the parameter\n\"$IDENTITY_API_VERSION\".\n\nCloses-Bug: #1253539\nChange-Id: I6640e345d1317b1308403c95b13f8a998320241b\n"
    }
  ],
  "next": "0718568b1203bd11058d3cd28402f84841c01dda"
}
