)]}'
{
  "log": [
    {
      "commit": "523f48803609b35350b624244fa73b1030c1d5fa",
      "tree": "17f99ab223f42eec58523fa89a49f243efba754b",
      "parents": [
        "307730acd9d271bc4c3d44f2dfed0eab67e1657d"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Oct 13 11:03:03 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Nov 27 15:36:04 2015 +1100"
      },
      "message": "Namespace XTRACE commands\n\nI noticed this when debugging some grenade issues failures.\n\nAn include of grenade/functions stores the current value of XTRACE\n(on) and disables xtrace for the rest of the import.\n\nWe then include devstack\u0027s \"functions\" library, which now overwrites\nthe stored value of XTRACE the current state; i.e. disabled.\n\nWhen it finishes it restores the prior state (disabled), and then\ngrenade restores the same value of XTRACE (disabled).\n\nThe result is that xtrace is incorrectly disabled until the next time\nit just happens to be turned on.\n\nThe solution is to name-space the store of the current-value of xtrace\nso when we finish sourcing a file, we always restore the tracing value\nto what it was when we entered.\n\nSome files had already discovered this.  In general there is\ninconsistency around the setting of the variable, and a lot of obvious\ncopy-paste.  This brings consistency across all files by using\n_XTRACE_* prefixes for the sotre/restore of tracing values.\n\nChange-Id: Iba7739eada5711d9c269cb4127fa712e9f961695\n"
    },
    {
      "commit": "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": "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"
    }
  ]
}
