)]}'
{
  "log": [
    {
      "commit": "9fecc2ad04a9414bfb3127d80ee02fed1d36a30d",
      "tree": "27c13ed3ed1e86aa72fee8a3985f5d93e53dd305",
      "parents": [
        "03fbc0d71bf4ee85820999ef1324dc319ef9d926"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Apr 07 12:28:40 2017 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Apr 07 15:32:09 2017 -0500"
      },
      "message": "Add OpenStackSDK as a lib install\n\nThis is required to install python-openstacksdk from source for testing\nother projects against master.\n\nChange-Id: Iee7b043ac7d381dadf89d26098f69e935ed81d6b\n"
    },
    {
      "commit": "94129c7d02902e0f000c09c8245be341df1c5965",
      "tree": "731f84b7edfcc48ff2a7f8a229a233a9a17b1b0a",
      "parents": [
        "858a105c81f1571825d086d359ca7538079072fb"
      ],
      "author": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Mon Jan 09 21:24:24 2017 +0000"
      },
      "committer": {
        "name": "Doug Hellmann",
        "email": "doug@doughellmann.com",
        "time": "Tue Jan 10 16:08:14 2017 +0000"
      },
      "message": "allow config to manage python3 use explicitly\n\nAdd variables ENABLED_PYTHON3_PACKAGES and DISABLED_PYTHON3_PACKAGES to\nwork like ENABLED_SERVICES and DISABLED_SERVICES and to manage which\npackages are installed using Python 3. Move the list of whitelisted\npackages in pip_install to the default for ENABLED_PYTHON3_PACKAGES,\nexcept swift which is not enabled by default for now.\n\nAdd enable_python3_package and disable_python3_package functions to make\nediting the variables from local.conf easier.\n\nAdd python3_enabled_for and python3_disabled_for functions to check the\nsettings against packages being installed by pip.\n\nUpdate pip_install to check if python3 is disabled for a service, then\nsee if it is explicitly enabled, and only then fall back to looking at\nthe classifiers in the packaging metadata.\n\nUpdate pip_install messages to give more detail about why the choice\nbetween python 2 and 3 is being made for a given package.\n\nChange-Id: I69857d4e11f4767928614a3b637c894bcd03491f\nSigned-off-by: Doug Hellmann \u003cdoug@doughellmann.com\u003e\n"
    },
    {
      "commit": "22b63666de41bf62b008cff709168c5e84a0bf3b",
      "tree": "c1697001191dc1d96a06107eb47ca84aa7ed4906",
      "parents": [
        "8040232e05a68ce18e4ddfa233140d604c94cc77"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Dec 09 07:33:01 2016 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Dec 12 09:55:32 2016 -0500"
      },
      "message": "Warn instead of die on undefined config names\n\nWhen using local.conf in multinode envs not everything is going to be\ndefined in all places. Eventually we probably want to make it so we\nhave a host role for these sections or something. But for now warn\ninstead of die when we can\u0027t find a config var.\n\nChange-Id: I6959099373f035fbfe9e540a44e4c52b8e7c95c0\nCloses-Bug: #2000824\n"
    },
    {
      "commit": "77a7296248b2aae4ce878e33e05575748e7e4131",
      "tree": "4b6d83aeb7a656ad33ed023617b6fd47fd550d31",
      "parents": [
        "2f1da40b0ce32927cbbb9506678af0e82a0b1b51",
        "8f985b6ff1179d19872e83c97035fa49a8f660f6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Dec 06 13:36:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Dec 06 13:36:52 2016 +0000"
      },
      "message": "Merge \"Remove heat code from devstack tree\""
    },
    {
      "commit": "02f3f9a6bbb6c4af989ad6cf504d5c49d7c9b4e2",
      "tree": "a2f2577d2a27eaf9e2ac14f8eb7679c02b322cb3",
      "parents": [
        "a3bb131c138859367f4529720121fd3eb8e239fd"
      ],
      "author": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@midokura.com",
        "time": "Sat Nov 26 00:43:07 2016 +0900"
      },
      "committer": {
        "name": "YAMAMOTO Takashi",
        "email": "yamamoto@midokura.com",
        "time": "Sat Nov 26 00:49:55 2016 +0900"
      },
      "message": "meta-config: Fix consecutive same sections\n\nThe current coding fails to process local.conf like\nthe following.  Note: This example is taken from a\nreal use case. [1]\n\n    [[post-config|$NEUTRON_CONF]]\n    [qos]\n    notification_drivers \u003d midonet\n    [[post-config|$NEUTRON_CONF]]\n\n    [quotas]\n    # x10 of default quotas (at the time of writing)\n    quota_network\u003d100\n    quota_subnet\u003d100\n    quota_port\u003d500\n    quota_router\u003d100\n    quota_floatingip\u003d500\n    quota_security_group\u003d100\n    quota_security_group_rule\u003d1000\n\n[1] https://review.openstack.org/#/c/400627/\n\nCloses-Bug: #1583214\nChange-Id: Ie571b5fa5a33d9ed09f30ba7c7724b958ce17616\n"
    },
    {
      "commit": "8f985b6ff1179d19872e83c97035fa49a8f660f6",
      "tree": "cbc2d64c533919145c459cf52024be7698e0a8a2",
      "parents": [
        "ac65a5cac01aa6d66857fba08fc022c9bc1f413c"
      ],
      "author": {
        "name": "xiaolihope",
        "email": "dixiaobj@cn.ibm.com",
        "time": "Wed May 18 00:32:08 2016 +0800"
      },
      "committer": {
        "name": "rabi",
        "email": "ramishra@redhat.com",
        "time": "Tue Nov 15 15:00:43 2016 +0530"
      },
      "message": "Remove heat code from devstack tree\n\nThis removes all of the heat code from the devstack tree, in favor of the\ndevstack plugin in Heat\u0027s tree.\n\nDepends-On: I4bed1e5cef5afa7b049b07640086a86a3f881e13\nDepends-On: Ic392bcc24bc374ee8511a94f1d8f6ac23131c7e3\n\nChange-Id: I5b60422bf1f5fa78aa8f3383f7a222e0356d9e42\n"
    },
    {
      "commit": "06f3639a70dc5884107a4045bef5a9de1fb725a5",
      "tree": "8d06ecb5ab87b41b29b0c0f21728919c0bbf3145",
      "parents": [
        "9b8b922872a6a19d5bc78383a2d484580871f833"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Aug 12 09:35:42 2016 -0500"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Aug 12 09:46:36 2016 -0500"
      },
      "message": "Add os-client-config and osc-lib from source\n\nThere is currently a hole in our testing that lets os-client-config,\nwhich sits at the bottom of the dependency chain for some key pieces\nlike neutronclient and python-openstackclient, introduce gate breakages.\nStep one in fixing this is allowing os-client-config to be optionally\ninstalled from source so that jobs can be put into its gate to exercise\nits master vs devstack installs.\n\nAdditionally, osc-lib is a new and lovely library that\u0027s going to need\nthe same things.\n\nWe\u0027re putting both in install_oslo, even though they\u0027re not oslo\nlibraries, because that\u0027ll make grenade work properly.\n\nCo-Authored-By: Monty Taylor \u003cmordred@inaugust.com\u003e\nChange-Id: I747480b6063a62e82ca2b030f274d3e87bf28b3b\n"
    },
    {
      "commit": "bb35715cfe68ad8d1d2ccb2b2e7eb4143e87d678",
      "tree": "b3f01bf87fbc6ff1260e856109a215de714a3b60",
      "parents": [
        "01cbe7c1438d8c7a262c1ac771531c24d08ea54f"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Jun 07 11:20:55 2016 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Jul 01 12:50:18 2016 +0000"
      },
      "message": "add local.conf modifying functions\n\nThis adds a set of local.conf modifying functions which make it easier\nfor consuming projects like devstack-gate to programatically add\nelements to local.conf structured files.\n\nChange-Id: I3427968c2bd43aba12b3619acc27f73c74f0dabb\nCo-Authored-By: fumihiko kakuma \u003ckakuma@valinux.co.jp\u003e\n"
    },
    {
      "commit": "8d0d3115ccf528ff5ae1533a670fc3bd475d0bcc",
      "tree": "9d589d8693070ecec731817c28ecea21c57744eb",
      "parents": [
        "5af67ae0e1c7ce681db8ab3b9fbd09d23b801b44"
      ],
      "author": {
        "name": "Ivan Kolodyazhny",
        "email": "e0ne@e0ne.info",
        "time": "Thu May 26 23:41:49 2016 +0300"
      },
      "committer": {
        "name": "Ivan Kolodyazhny",
        "email": "e0ne@e0ne.info",
        "time": "Thu May 26 23:52:53 2016 +0300"
      },
      "message": "Allow override of python-brick-cinderclient-ext library used by cinder\n\nAdded to requirements:\nhttps://review.openstack.org/309084\n\nFunctional tests were added\nhttps://review.openstack.org/265811\n\nBut they still use the version of python-brick-cinderclient-ext from pip.\n\nThis change updates devstack to pull in the changes from\npython-brick-cinderclient-ext patch sets instead, when configured to do so.\n\nChange-Id: I6d0f09950ea1200d3367a53aa4a3eea9be7abc66\nNeeded-by: I34f3b5ceaad7a50b1e9cadcc764f61c0aabe086d\n"
    },
    {
      "commit": "a046b6052a340b24063be3dc851fa4bbb51d6c00",
      "tree": "1f1c7025bce3f2731b6c2e974297cc03751a50ce",
      "parents": [
        "13b3be10a754c0e0f9fb31ce824d5f2d9cc905de"
      ],
      "author": {
        "name": "Jordan Pittier",
        "email": "jordan.pittier@scality.com",
        "time": "Mon May 02 11:59:52 2016 +0200"
      },
      "committer": {
        "name": "Jordan Pittier",
        "email": "jordan.pittier@scality.com",
        "time": "Mon May 02 11:59:52 2016 +0200"
      },
      "message": "Remove tempest-lib setup\n\nTempest-lib, as a standalone project, is deprecated in favor of a\n\"lib/\" directory inside Tempest\u0027s repo. So remove the installation\nof tempest-lib in DevStack.\n\nChange-Id: I507bfe875777fd25bbe5d67c861f3fca99faa22d\n"
    },
    {
      "commit": "547c393b937e95b1f944964cc8dc597b7402a01a",
      "tree": "23df0f8a4adda159d39c63ff5729291c1272cf05",
      "parents": [
        "22314596af58c0423c02f43fbbb7cbc082156cf4",
        "1258da64085cef851be09923e37d1ed59348b43d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Mar 24 15:22:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Mar 24 15:22:31 2016 +0000"
      },
      "message": "Merge \"Allow install os-vif library used by Nova\""
    },
    {
      "commit": "d99c29032bb0cc89ffe6874c7b879b84897ff0b0",
      "tree": "f0ad4de669a23d4bc9fa528f8d83bdf2a209ae2f",
      "parents": [
        "0a2a7ae8471575d887a19b9bf8b7375ea1fd7f45"
      ],
      "author": {
        "name": "Mark Vanderwiel",
        "email": "vanderwl@us.ibm.com",
        "time": "Thu Mar 17 12:19:16 2016 -0500"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Mar 22 09:34:04 2016 +1100"
      },
      "message": "Add dependency for hexdump\n\nhexdump is used in common function generate_hex_string which is\nused by nova and heat.  The current general dependencies do not\nhave this dependency covered, instead it is usually pulled in by\nother implicit dependencies when a full devstack is built. In\ncases where only a subset is built (like just Heat and keystone)\nhexdump is missing.\n\nAdded unit tests for the generate_hex_string function.\n\nDepends-On: Ib47d802a31a0f4c2a49daa7e6698e37c70a2365a\nChange-Id: I77c8c2019fb8b8174cdfaed3e56ebf728f0732b7\nCloses-Bug: #1558672\n"
    },
    {
      "commit": "1258da64085cef851be09923e37d1ed59348b43d",
      "tree": "1e85ca7a3e704006b565929a9d8ac00eaab82491",
      "parents": [
        "0a2a7ae8471575d887a19b9bf8b7375ea1fd7f45"
      ],
      "author": {
        "name": "Sergey Belous",
        "email": "sbelous@mirantis.com",
        "time": "Mon Mar 21 12:32:06 2016 +0300"
      },
      "committer": {
        "name": "Sergey Belous",
        "email": "sbelous@mirantis.com",
        "time": "Mon Mar 21 12:40:50 2016 +0300"
      },
      "message": "Allow install os-vif library used by Nova\n\nIn future Nova will use os-vif library for some communication with Neutron.\nThis patch add ability to install os-vif library that requires for run\ntempest-jobs for new patches, that used os-vif.\n\nChange-Id: I28e48afd3c740b1aa50c994d99f660f095e7deda\n"
    },
    {
      "commit": "6fff3cc03589cb0fdf02b4bedf1c35bcb000f28d",
      "tree": "a9be2d66dbbe9b607090e786ab3a6c6fd6758a25",
      "parents": [
        "03cf3ce902daa5b53151cd2b8663f4e5533e3177"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Mar 08 12:00:15 2016 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Mar 08 12:00:15 2016 -0500"
      },
      "message": "Fix sorting on LC_ALL\u003dC platforms\n\nWe made assumptions on the platform for sorting purposes, which turned\nout to break with new images being deployed. Explicitly setting LC_ALL\nshould make this work.\n\nChange-Id: Id65f1bff8e38c777fa406d88ac6a2355d6033d94\n"
    },
    {
      "commit": "86561c347d70c5124c139eb80fe1c0466e5a62f2",
      "tree": "e71433f0e96eccfbf3f3ae16390958518392a96a",
      "parents": [
        "29f1ebb6885c22e94a225ba16a268aa26f60131c"
      ],
      "author": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Wed Feb 10 18:37:21 2016 -0700"
      },
      "committer": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Thu Feb 11 11:01:01 2016 -0700"
      },
      "message": "Enable neutron-lib for LIBS_FROM_GIT for backwards compat jobs\n\nChange-Id: I8dd84c59d2ec3a7c01ff4f1aaf7fa61d7466cfd5\n"
    },
    {
      "commit": "dab2f8b5ab4bb549601fb5cc5d2fc1498ba98a24",
      "tree": "d2ac4b04a4a42e8a7f1b3cec20ce6c69fbda49ec",
      "parents": [
        "985761d5bd57aef838746a50d634ff03b196eba5",
        "3919d4c822a38d324adf47697f4b9bedbc906a36"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Feb 11 02:33:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Feb 11 02:33:14 2016 +0000"
      },
      "message": "Merge \"Add diskimage-builder to the list of libraries\""
    },
    {
      "commit": "2d02d29e27ef0e27593adeb0008ee4c74f029ca3",
      "tree": "27fbdff897e467e80bc857199bd2cf8d1e70c7c4",
      "parents": [
        "8c71ffa997ced99cb0eb93cea79e2fd969ee6145",
        "2ba36cda7940d630514a7864132837191d8c561f"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jan 29 05:21:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jan 29 05:21:09 2016 +0000"
      },
      "message": "Merge \"Add vercmp function\""
    },
    {
      "commit": "ba0a659c762e07951cd4f3e305aa5bd09a1a2918",
      "tree": "122d68cd852f22b112fd80836cfc11f68d48e54b",
      "parents": [
        "ea7fd5515344c18a5cec308fada67b6f3f6ab482"
      ],
      "author": {
        "name": "Boris Pavlovic",
        "email": "boris@pavlovic.me",
        "time": "Thu Jan 14 17:31:40 2016 -0800"
      },
      "committer": {
        "name": "Boris Pavlovic",
        "email": "boris@pavlovic.me",
        "time": "Thu Jan 14 18:38:30 2016 -0800"
      },
      "message": "Make OSprofiler repo and branch configurable\n\nOSprofiler is now under Oslo:\nhttps://review.openstack.org/#/c/103825/\n\nAnd we really need this patch to make proper dsvm job for\nOSprofiler\n\nChange-Id: I20f59c52c147303de01544dc975a82b4a741a1b9\n"
    },
    {
      "commit": "3919d4c822a38d324adf47697f4b9bedbc906a36",
      "tree": "f76415a524791e8d15303a59db187fbb03765850",
      "parents": [
        "2cb3db338a17bd26fef1f56fc155be5d01a6ef7e"
      ],
      "author": {
        "name": "Lucas Alvares Gomes",
        "email": "lucasagomes@gmail.com",
        "time": "Mon Dec 14 12:02:55 2015 +0000"
      },
      "committer": {
        "name": "Lucas Alvares Gomes",
        "email": "lucasagomes@gmail.com",
        "time": "Mon Jan 11 19:10:18 2016 +0000"
      },
      "message": "Add diskimage-builder to the list of libraries\n\nAdd diskimage-builder to the list of libraries so it can be installed\nfrom source to be tested in gate.\n\nChange-Id: I6cefac1eb4ebf0196a6b4d4bfc038c00921f0d70\n"
    },
    {
      "commit": "135bd484a9f83099e33e18dd97274ad550a392bb",
      "tree": "2a6a731f79456ac7a1db6778baf973d061ec2b7d",
      "parents": [
        "1195a5b7394fc5b7a1cb1415978e9997701f5af1"
      ],
      "author": {
        "name": "vsaienko",
        "email": "vsaienko@mirantis.com",
        "time": "Fri Dec 11 11:03:52 2015 +0200"
      },
      "committer": {
        "name": "Vasyl Saienko",
        "email": "vsaienko@mirantis.com",
        "time": "Tue Dec 29 09:42:35 2015 +0000"
      },
      "message": "Introduce iniget_sections function\n\nThis function returns list of sections from specified INI file.\nIt is needed for I7938f26015d953efdf720774b5ad2cee4068ac90.\n\u0027iniget_sections\u0027 is needed for automatic node enrollment to\nIronic from INI syntax file.\n\nChange-Id: I52a69ad3bc8fc528e7f20e6b03a98f327acaaa74\nImplements: blueprint ironic-ml2-integration\n"
    },
    {
      "commit": "b889294af7aa1ccf613da28fb08f547306e0f581",
      "tree": "a592990b15a43e838024f0a9613db3044c112779",
      "parents": [
        "4300f83acf06ce1b6b7976a604a756b9f28f57a1",
        "ecf06dbadb7c4cafb7a2fab13e58c1b05dd8a3f2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Dec 01 16:01:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Dec 01 16:01:40 2015 +0000"
      },
      "message": "Merge \"Add test for package file ordering\""
    },
    {
      "commit": "5509ed579773bf1a69bc5fb406a206a6da010c56",
      "tree": "d06172fadcae6f52ec4316b8ec578e0ee5c48093",
      "parents": [
        "bf81732b129675d667d2285859f32db16ef5e2f5"
      ],
      "author": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Mon Nov 30 20:20:21 2015 +0900"
      },
      "committer": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Mon Nov 30 20:25:17 2015 +0900"
      },
      "message": "Fix comment typos in inc/ and tests/ directories\n\nvalu3 \u003d\u003e value3\nenviromnet \u003d\u003e environment\ndirecotry \u003d\u003e directory\nvirualenv \u003d\u003e virtualenv\neditiable \u003d\u003e editable\nenvirnment \u003d\u003e environment\n\nChange-Id: I97fb2d44a37b16d02d4fbdb08bfa33414349f651\n"
    },
    {
      "commit": "7f0be4fc5f5bd8f45087e53c94fae3b9146f486e",
      "tree": "a77f1372145cff6efe15d7e6fdcc77a9983cca4f",
      "parents": [
        "0b6a40bcabeaffef419a0a35f59cd7329e73c8db"
      ],
      "author": {
        "name": "Swapnil Kulkarni (coolsvap)",
        "email": "me@coolsvap.net",
        "time": "Fri Nov 20 10:52:59 2015 +0530"
      },
      "committer": {
        "name": "Swapnil Kulkarni (coolsvap)",
        "email": "me@coolsvap.net",
        "time": "Fri Nov 20 11:17:19 2015 +0530"
      },
      "message": "Updated Typos in devstack\n\n(1/5) Updated HACKING.rst for typos\n(2/5) Updated typos in lib/dlm\n(3/5) Updated typos in lib/ironic\n(4/5) Updated typos in unittest.sh\n(5/5) Updated typos in test_meta_config.sh\n\nChange-Id: I7aafa3af69df9dc6a5923a8557f380d48b73433a\n"
    },
    {
      "commit": "2ba36cda7940d630514a7864132837191d8c561f",
      "tree": "8ccd27a24002f60afa2ea532dffe75cc3108200e",
      "parents": [
        "bcad037697bf062dc1f3471893c6225dd42dfffc"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Nov 12 13:52:36 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Nov 19 09:37:33 2015 +1100"
      },
      "message": "Add vercmp function\n\nThe existing vercmp_numbers function only handles, as the name says,\nnumbers.  I noticed that \"sort\" has had a version sort for a long time\n[1] and, rather than re-implement it badly, use this as a version of\nvercmp that works a bit more naturally.\n\nThis is intended to be used in an \"if\" statement as in\n\n  prog_ver\u003d$(prog_ver --version | grep ...)\n  if vercmp $prog_ver \"\u003c\" 2.0; then\n     ...\n  fi\n\nA test-case is added to test the basic features and some edge-cases.\n\n[1] http://git.savannah.gnu.org/gitweb/?p\u003dcoreutils.git;a\u003dcommitdiff;h\u003d4c9fae4e97d95a9f89d1399a8aeb03051f0fec96\n\nChange-Id: Ie55283acdc40a095b80b2631a55310072883ad0d\n"
    },
    {
      "commit": "ecf06dbadb7c4cafb7a2fab13e58c1b05dd8a3f2",
      "tree": "aaedab8c84db6895e66bca0718131d9a17f0e724",
      "parents": [
        "ca7e4f285cfb68bae13e8df770dc2b5856559ecd"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Nov 09 17:42:23 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Nov 16 15:50:58 2015 +1100"
      },
      "message": "Add test for package file ordering\n\nAdd a simple test to ensure package install files remain sorted\nalphabetically (follow-on from the sorting of the files done in\nI01e42defbf778626afd8dd457f93f0b02dd1a19d)\n\nChange-Id: I75568871e92afcd81dac2c3ce18b84aa34cdd289\n"
    },
    {
      "commit": "ca7e4f285cfb68bae13e8df770dc2b5856559ecd",
      "tree": "e03d3bd038e13059a87a060866174d93ae5f2d31",
      "parents": [
        "d9da93ede2d9214859f5f55f29116c080191cff4"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Nov 13 11:15:15 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Nov 16 15:47:51 2015 +1100"
      },
      "message": "Fix error detection \u0026 exit in report_results\n\nWe wish to fail if we have \u003e0 zero errors, not \u003e1 errors (i.e. exactly\none error did not trigger a failure!)\n\nThis change also brings consistency to the pass \u0026 failure paths by\nensuring report_results exits in both cases, since report_results is\nsupposed to be the last thing run in a test file.\n\nChange-Id: Id4721dffe13721e6c3cd71bca40c3395627e98bf\n"
    },
    {
      "commit": "73de4a42d96780b0a14f36e43dd6cb7934101209",
      "tree": "f99e562aa7e546a65c02b89b44ce2a21f55baec8",
      "parents": [
        "c9f6f1126599c49c6cd838bdaa2a93ffb400e87c",
        "85f42f698c7bd74d53309da486fbf44ed860c348"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Nov 04 15:39:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Nov 04 15:39:03 2015 +0000"
      },
      "message": "Merge \"Provide an error message on bogus config file spec\""
    },
    {
      "commit": "85f42f698c7bd74d53309da486fbf44ed860c348",
      "tree": "8d8a7ab9738ebbd422b6617b780e2a8b56931570",
      "parents": [
        "f86d2e1a05dbcb144bb7614932adcd56514360fd"
      ],
      "author": {
        "name": "Thomas Morin",
        "email": "thomas.morin@orange.com",
        "time": "Tue Sep 01 10:33:10 2015 +0200"
      },
      "committer": {
        "name": "Thomas Morin",
        "email": "thomas.morin@orange.com",
        "time": "Mon Nov 02 15:35:01 2015 +0100"
      },
      "message": "Provide an error message on bogus config file spec\n\nIf local.conf specifies a config file addition in the following way...\n\n[[post-config|$MY_CONF_FILE]]\n[xyz]\nfoo\u003dbar\n\n...and $MY_CONF_FILE points to a file whose directory is not writable by\nthe user running the script, then stack.sh aborts with the following\nobscure message:\n\n  2015-09-01 08:20:08.113 | touch: setting times of \u0027/\u0027: Permission denied\n\nThis patch modifies inc/meta-config to provide a useful error message,\nsuch as:\n\n  2015-09-01 08:20:08.114 | could not create config file / ($MY_CONF_FILE)\n\nThis patch also modifies inc/meta-config so that it provides an error\nmessage if $MY_CONF_FILE is empty (instead of silently ignoring this local.conf\nstatement):\n\n  2015-09-01 09:38:53.406 | bogus config file specification: $MY_CONF_FILE\n  is undefined\n\nChange-Id: I9b78407420318548561012a8672762bc7fdd6db6\nCloses-Bug: 1490881\n"
    },
    {
      "commit": "c77fc2e196b471fc12d4e99f013d68965b639658",
      "tree": "8c8007f9c99bc0864f65d48ea538c627138e739d",
      "parents": [
        "fd3af1d8e2c57aa9b8c0ebeccd322e2614f95678",
        "7792bc39d4f9f7ec7fd1b81ddbb30c30988f03e6"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 29 03:00:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 29 03:00:30 2015 +0000"
      },
      "message": "Merge \"Add new oslo.privsep library to oslo repos\""
    },
    {
      "commit": "83a2a42ac020d5364fa15a10e856b8125626c660",
      "tree": "7085827c2ac71f7bb952a30e479f4253065123c5",
      "parents": [
        "a692810ef05304856e5fd12ec786f3445ecca576",
        "54dc19ecad2ed06694a4b6269c2833d9533a26f5"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 29 00:44:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 29 00:44:54 2015 +0000"
      },
      "message": "Merge \"Add export_proxy_variables() tests to test_functions.sh\""
    },
    {
      "commit": "7792bc39d4f9f7ec7fd1b81ddbb30c30988f03e6",
      "tree": "47ad5125a35487a0d3e2418e064537f9b5a42ebc",
      "parents": [
        "0afcac2e01580b7aee886272b8ed7eaf9c13132c"
      ],
      "author": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Fri Oct 23 13:57:14 2015 +1100"
      },
      "committer": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Sun Oct 25 17:39:37 2015 +1100"
      },
      "message": "Add new oslo.privsep library to oslo repos\n\nA new project olos.privsep has been created but failes sdvm testing as\neven though the library is added ro PROJECTS and LIBS_FROM_GIT it isn\u0027t\ninstalled by devstack.\n\nAdd oslo.privsep to the install_oslo function\n\nChange-Id: Ia4d56747d56dcfe50889ebbdf9d553df13e1b950\n"
    },
    {
      "commit": "6e9bee1ae587cccc278dc24ae0d9820a222409fe",
      "tree": "db87e22509c52e7e92ba0b70160219bb0fd4dea9",
      "parents": [
        "188b38fc808d0713476dec30f15d60618acd692b",
        "e82bac04981c8e41a919907d16621c9c952d9224"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Oct 15 02:56:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Oct 15 02:56:19 2015 +0000"
      },
      "message": "Merge \"Detect blank variable in trueorfalse\""
    },
    {
      "commit": "e82bac04981c8e41a919907d16621c9c952d9224",
      "tree": "d94a1380349e0154da2581b80b281b13dad3aaab",
      "parents": [
        "c1561f84fb421d2ce28d3c2b07fd7b53f57264bf"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Aug 25 14:29:08 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Oct 09 19:07:50 2015 +1100"
      },
      "message": "Detect blank variable in trueorfalse\n\nAs a follow-on to I8cefb58f49dcd2cb2def8a5071d0892af520e7f7, put in\nsome detection around missing variable-to-test arguments in\ntrueorfalse.\n\nCorrect a couple of places where we were passing in blank strings,\nresulting in the default always being applied.\n\nAdd test-cases and enhance the documentation a little.\n\nDepends-On: I8cefb58f49dcd2cb2def8a5071d0892af520e7f7\nChange-Id: Icc0eb3808a2b6583828d8c47f0af4181e7e2c75a\n"
    },
    {
      "commit": "ada886dd43ccc07f48d3a82d8d3d840fe5096c03",
      "tree": "93d62f1c82edc08d813b7f9f7eb9270e7024e055",
      "parents": [
        "433a9b10ddd6fa67d7459c4943a92ce4f488cebc"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 14:06:26 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 17:03:32 2015 +1100"
      },
      "message": "Don\u0027t mix declaration and set of locals\n\nIa0957b47187c3dcadd46154b17022c4213781112 proposes to have bashate\nfind instances of setting a local value.  The issue is that \"local\"\nalways returns 0, thus hiding any failure in the commands running to\nset the variable.\n\nThis is an automated replacement of such instances\n\nDepends-On: I676c805e8f0401f75cc5367eee83b3d880cdef81\nChange-Id: I9c8912a8fd596535589b207d7fc553b9d951d3fe\n"
    },
    {
      "commit": "e9a4750fe1b111eeb457378c26ca9eea1b5e0085",
      "tree": "d7ef7ebdc7c61f9c2e70516858b57be1b8f30828",
      "parents": [
        "633e740dcfb0a8a107880a6fc6b9aeff8ee43b11"
      ],
      "author": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Sat Jun 27 11:29:09 2015 +0000"
      },
      "committer": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Wed Sep 09 16:44:29 2015 +0000"
      },
      "message": "Remove ceilometer in favor of plugin\n\nThe ceilometer project is moving to using a devstack plugin rather\nthan having ceilometer in the base devstack. This is to allow\ngreater control and flexibility.\n\nChange-Id: I413ab159474b7d7231ad66d3a482201f74efe8a8\n"
    },
    {
      "commit": "3f249b1e21848cbea7798b522a17a279427e55f5",
      "tree": "581bb990d05cf6d592ee9d38811eb356a3e37347",
      "parents": [
        "181441d96d5b7764376eb46a8dbb0d1728ea9a2f",
        "869b72b8512d73d24b42e0fa5c39b8dc0d7b28f7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Sep 01 18:21:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Sep 01 18:21:00 2015 +0000"
      },
      "message": "Merge \"Support installing ironic-lib\""
    },
    {
      "commit": "9f52d648fbffe342b9c822f6519a7992c914f50f",
      "tree": "cf3c521444aa1cf691ffbb5115b175cd146e25ea",
      "parents": [
        "6059752fc0e86145a425288d7de9c9fa5aba6846",
        "cede78748291a8b5ae0dd0dc34c95da4a72fb3ea"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Aug 29 00:38:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Aug 29 00:38:16 2015 +0000"
      },
      "message": "Merge \"Add file creation test\""
    },
    {
      "commit": "a30a98099baa00b29c5e073c5a85b8a647aca954",
      "tree": "b7657bc7a5ebc9373a98b8a533e7403842e522de",
      "parents": [
        "897d116a7c9c09385e7e87e1202d7fa612802c49",
        "f44a024f022d843fd204da6e23b4a98a142c07f3"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Aug 27 22:15:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Aug 27 22:15:30 2015 +0000"
      },
      "message": "Merge \"Add -sudo option to ini setting options\""
    },
    {
      "commit": "869b72b8512d73d24b42e0fa5c39b8dc0d7b28f7",
      "tree": "26ef0b5236c826bb28cc52f5938cf2d71cfcc340",
      "parents": [
        "32e0febbc086a1accd90c3d9a9535ebb75495afe"
      ],
      "author": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Thu Aug 13 13:36:23 2015 +0200"
      },
      "committer": {
        "name": "Dmitry Tantsur",
        "email": "dtantsur@redhat.com",
        "time": "Wed Aug 26 17:34:46 2015 +0200"
      },
      "message": "Support installing ironic-lib\n\nironic-lib will soon become a dependency of ironic, make sure we can\nwrite dsvm gates against it.\n\nChange-Id: I6e66ae770cf5065980848e7e987bfd75765a5ac6\n"
    },
    {
      "commit": "5cbd85738e04a499cf29de834d978dfe7847feba",
      "tree": "b3d0d96f3e9d406473f640cef848917667d55675",
      "parents": [
        "23e749d9bd82bab9a4ce14b6d976133d9b416b80",
        "b997db602e15b60c68c0f7a99db74b5d2419a85c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jul 27 20:43:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jul 27 20:43:50 2015 +0000"
      },
      "message": "Merge \"Cleanup of ini test-case\""
    },
    {
      "commit": "3805b3770c091840f67949762ed38bb1548704d2",
      "tree": "5f3c33e461f9678d28bf4b959124b6b471dec8ac",
      "parents": [
        "d4da210ffb2a9f1274705ba04ec56337e7e1ea1c",
        "21a9077d7cf32ee1c387171b943125e938eaa1b2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 23 14:17:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 23 14:17:49 2015 +0000"
      },
      "message": "Merge \"Allow installing keystoneauth from git\""
    },
    {
      "commit": "cede78748291a8b5ae0dd0dc34c95da4a72fb3ea",
      "tree": "edb95ec50f80d2d72499acfac0438984dce5df39",
      "parents": [
        "f44a024f022d843fd204da6e23b4a98a142c07f3"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 22 13:36:12 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Jul 23 06:46:24 2015 +1000"
      },
      "message": "Add file creation test\n\nEnsure that iniadd is creating files that don\u0027t exist, as it has\nhistorically done.\n\nChange-Id: I2798996f3d46ff1dce410b815a87395f1bf729f9\n"
    },
    {
      "commit": "f44a024f022d843fd204da6e23b4a98a142c07f3",
      "tree": "16578c1561a9793e8cf1be28fe36dd41ad84c325",
      "parents": [
        "b997db602e15b60c68c0f7a99db74b5d2419a85c"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 22 10:34:47 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Jul 23 06:46:24 2015 +1000"
      },
      "message": "Add -sudo option to ini setting options\n\nAdd a -sudo option to allow these functions to operate on root-owned\nfiles.  Test-case is updated, but not enabled by default as we can\u0027t\nexpect test-runner to have sudo access.\n\nChange-Id: I134c3397314c7d9395996eb6c825ecb7e7fdfc69\n"
    },
    {
      "commit": "b997db602e15b60c68c0f7a99db74b5d2419a85c",
      "tree": "2ce2d0c7bfad12814839308d7eba650ead71d6cd",
      "parents": [
        "92884ede5d20a399186c61cf5e003da61838eec4"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 22 10:05:32 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Jul 23 06:46:24 2015 +1000"
      },
      "message": "Cleanup of ini test-case\n\nVarious cleanup to this file.\n\nFirstly create a temporary space to test, rather than working in the\nsource directory.\n\nWe have \"assert_equal\" which simplifies a lot.  Add \"assert_empty\"\nthat is used in a couple of tests too.  Remove a couple of duplicate\ntests.\n\nChange-Id: I7fd476ed63026e67d66a8ac2891b2e4a6687d09c\n"
    },
    {
      "commit": "f0e86a7ac75091c5ceeaeeb4f51869522f23e5f8",
      "tree": "aceb794917cac133a138d31278737721f039000b",
      "parents": [
        "469215d374367ce5b701f0a485be8f5a8f349c96",
        "5c7f39fdcd29a74c402840021ca55f47c359fbf1"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 16 23:55:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 16 23:55:34 2015 +0000"
      },
      "message": "Merge \"Add worlddump unit test\""
    },
    {
      "commit": "54dc19ecad2ed06694a4b6269c2833d9533a26f5",
      "tree": "1e0f088e3f4ea3b927de995f365e705c82665cfe",
      "parents": [
        "47e68afd674fb387b99216f94eac3eb477a6e077"
      ],
      "author": {
        "name": "Mahito OGURA",
        "email": "m.ogura@ntt.com",
        "time": "Tue Jul 14 17:16:42 2015 +0900"
      },
      "committer": {
        "name": "Mahito",
        "email": "m.ogura@ntt.com",
        "time": "Wed Jul 15 23:31:51 2015 +0900"
      },
      "message": "Add export_proxy_variables() tests to test_functions.sh\n\nIn test_functions.sh, There aren\u0027t export_proxy_variables() tests.\nThis patch add test of export_proxy_variables to test_funstions.sh.\n\nChange-Id: I76f2bab84f4019961e612b0bff0ab66646b6e160\n"
    },
    {
      "commit": "21a9077d7cf32ee1c387171b943125e938eaa1b2",
      "tree": "b6dd67eabece8d2ad0f6667744c3cb44091b3e38",
      "parents": [
        "2d25c9290d163d682ae3958f0e09fede937c0f0f"
      ],
      "author": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Fri Jul 03 11:54:38 2015 +1000"
      },
      "committer": {
        "name": "Jamie Lennox",
        "email": "jamielennox@redhat.com",
        "time": "Mon Jul 06 23:17:15 2015 +0000"
      },
      "message": "Allow installing keystoneauth from git\n\nKeystoneauth is not marked as stable yet however to ensure that the\nintegration between it, keystoneclient and other services don\u0027t break\ncompatibility we want to test it with tempest.\n\nUnfortunately you can\u0027t put -e links in requirements.txt files so add\nit to devstack so we can set the test environment. This will also make\nit available when keystoneauth is released.\n\nChange-Id: I43ca1df9c6ae2f0ac1a687c9ce1e2ccb97e81652\n"
    },
    {
      "commit": "fee742ba723bfb843a58881cb415b4e7991981c1",
      "tree": "48c88ef656f97b8770f543b83576d470d6e6f9eb",
      "parents": [
        "17a16f3144f6d3ade315f04526b7ca479148c0b9",
        "3381e09f72e7edbf39080893212b533b8e01a3a9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jul 02 18:39:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jul 02 18:39:38 2015 +0000"
      },
      "message": "Merge \"Move Sahara into in-tree plugin\""
    },
    {
      "commit": "3381e09f72e7edbf39080893212b533b8e01a3a9",
      "tree": "cbf50f839776758eae779780965b960028b96fc4",
      "parents": [
        "85a1c488dfda0094238f899ea0bf693106021ce5"
      ],
      "author": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Wed Jul 01 14:20:23 2015 +0300"
      },
      "committer": {
        "name": "Sergey Lukjanov",
        "email": "slukjanov@mirantis.com",
        "time": "Wed Jul 01 16:09:56 2015 +0000"
      },
      "message": "Move Sahara into in-tree plugin\n\nOnce the Sahara related code moved to Sahara repo and used, we can\nremove Sahara specific code from Devstack.\n\nPartial-Implements: bp sahara-devstack-intree\n\nChange-Id: I34412b5cb2e86944b8555b8fd04b43556eb2bbe6\nDepends-on: I2e00b2ebc59dd3be6a0539dea2985f2e801a1bd7\nDepends-on: I07c3fede473030e8a110cbf5a08309f890905abf"
    },
    {
      "commit": "5c7f39fdcd29a74c402840021ca55f47c359fbf1",
      "tree": "b9ed77dd6dc798958a0b42a825afad226ebd7d7a",
      "parents": [
        "3a9df1dab73e2cb2f27dd014543ab16f22ac3846"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 01 06:29:27 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Jul 01 06:29:27 2015 +1000"
      },
      "message": "Add worlddump unit test\n\nAdd a worlddump unit test to avoid simple breakages\n\nChange-Id: I6b87d4dbe22da2c1ca5ceb13134e9bb570f5cef2\n"
    },
    {
      "commit": "77a7d11dfa828468f27bce5456d11a9827473b20",
      "tree": "c2b1577e6194a65142c87a3eba86ac496036de8e",
      "parents": [
        "7bc1f3c15fbf92da5fe9e15bf66a2d6b6648e449"
      ],
      "author": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Mon Jun 22 16:44:13 2015 -0400"
      },
      "committer": {
        "name": "Davanum Srinivas (dims)",
        "email": "davanum@gmail.com",
        "time": "Tue Jun 30 18:43:56 2015 +0000"
      },
      "message": "Add new oslo libraries\n\nFull list for liberty is as follows:\n* oslo.service\n* oslo.reports\n* automaton\n* futurist\n\noslo.cache was already added in the earlier review\n\nSome of the entries are already there, though automaton was\nmissing in one spot. Made sure all references have all five\nlibraries.\n\nChange-Id: Iffb720d46058424924469695a3ae1e4f20655f99\n"
    },
    {
      "commit": "531017cf3e760dc1e9af25684465681277dec8d4",
      "tree": "5aab47c8ff60a79d5bb95b00f7d5015bc2e4d94c",
      "parents": [
        "e4d57d6bed88ec11ca7fcc8dc286a69d284c70aa"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sat Jun 27 03:37:39 2015 +0000"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sat Jun 27 15:10:51 2015 +0000"
      },
      "message": "Add oslo.cache to devstack\n\nas part of the graduation process, add oslo.cache to lib/oslo\nand stackrc.\n\nChange-Id: I2baf0384dd5d71d234a95b7acd0bfe5534f2732c\n"
    },
    {
      "commit": "18d1cca6cb1e56827e04c2f38c9db745b881f98a",
      "tree": "e93d4e09ecd337cc702309eac3d264b61cf741b0",
      "parents": [
        "810dc1d6f4b22eee04303e01968c1762a16986e0"
      ],
      "author": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Thu Jun 18 06:32:00 2015 -0400"
      },
      "committer": {
        "name": "Davanum Srinivas",
        "email": "davanum@gmail.com",
        "time": "Thu Jun 18 06:32:04 2015 -0400"
      },
      "message": "Add oslo.service to devstack\n\nAdd the ability to switch on oslo.service master using\nLIBS_FROM_GIT\n\nChange-Id: I00fe7776aea005b6d4e0a84fce54f33a862b57e3\n"
    },
    {
      "commit": "e3a640d57327955aba491366d6e69349813897a8",
      "tree": "97bc56f99ee863f98f7018b5c83e400db35a946d",
      "parents": [
        "96c6b2deb33e67c1657e37fdcc8c6ec904674ed6"
      ],
      "author": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Mon Jun 08 16:44:21 2015 -0700"
      },
      "committer": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Wed Jun 10 11:57:41 2015 -0700"
      },
      "message": "Add futurist to lib/oslo and stackrc\n\nPart of blueprint adopt-futurist\n\nChange-Id: I17e27a085c7c509bad6018016e90d0114543b073\n"
    },
    {
      "commit": "96c6b2deb33e67c1657e37fdcc8c6ec904674ed6",
      "tree": "a20ed9f2c9f1c86f3648a153d0e244f460e86042",
      "parents": [
        "dd4e468448cf4b30477f2ee4a8e14b97cb4756aa"
      ],
      "author": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Mon Jun 08 16:48:49 2015 -0700"
      },
      "committer": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Wed Jun 10 11:48:50 2015 -0700"
      },
      "message": "Add automaton to lib/oslo and stackrc\n\nPart of blueprint adopt-automaton\n\nChange-Id: I520643b74aced431f7a46b7d7b94616bb2e6bf8e\n"
    },
    {
      "commit": "10e1fd420dbebec2a5e546266edfc748b8684f9b",
      "tree": "b154beff1e426f6b6e53f4e13620b9ae60db3a5a",
      "parents": [
        "21b7e975fa3d1db3710b3d12d965f87828d9be84"
      ],
      "author": {
        "name": "Ramy Asselin",
        "email": "ramy.asselin@hp.com",
        "time": "Thu Jun 04 12:12:15 2015 -0700"
      },
      "committer": {
        "name": "Ramy Asselin",
        "email": "ramy.asselin@hp.com",
        "time": "Mon Jun 08 09:54:16 2015 -0700"
      },
      "message": "Allow override of os-brick library used by cinder\n\nos-brick code was pulled out of cinder and made into its own library\nhttps://review.openstack.org/#/c/155552/\n\nadded to requirements:\nhttps://review.openstack.org/#/c/177372/\n\nIntegration tests were added\nhttps://review.openstack.org/#/c/188156/\n\nBut they still use the version of os-brick from pip.\n\nThis change updates devstack to pull in the changes from\nos-brick patch sets instead, when configured to do so.\n\nNeeded-by: Id2bc10782847861fe4bb5e9e46245654450e38fd\n\nChange-Id: I5359dd37dfe94bd469d5ca35f9fbaeda61b5fac4\n"
    },
    {
      "commit": "dd363a182fb1f8472bc163c82ea5f48e8f8fd29e",
      "tree": "68c68729bd4d1a91dc37a7bb4e3cf8d45c2259a5",
      "parents": [
        "d986c59d6bd64c012cac3893a4b8bf75a84af4c5"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon May 25 11:50:32 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu May 28 10:40:55 2015 +1000"
      },
      "message": "Cleanup test_ip.sh to give more consistent output\n\nMinor changes to give more consistent output; no functional changes to\ntests.\n\nChange-Id: I6c4ef74587c59b786761735c7bd528f3d7f94905\n"
    },
    {
      "commit": "cfdb6fa940d947715e4b729b9e1e17ee8c6b14a8",
      "tree": "e45ce955250bcaf26665689d963873830ab7b351",
      "parents": [
        "3fa092bc1c3853905a9b2f99818b403aea59c20d",
        "d82d3f13401320ec47757aff0457a307203b28fe"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 27 15:43:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed May 27 15:43:26 2015 +0000"
      },
      "message": "Merge \"Add test case to \u0027cidr2netmask\u0027\""
    },
    {
      "commit": "3fa092bc1c3853905a9b2f99818b403aea59c20d",
      "tree": "6ee0e8a8b2afc61b133ff566136282c238f14421",
      "parents": [
        "11e17174beb1bc4fbcf3122d33e7dd5a406ee09c",
        "165afa2377ee8eb6bad1b6cfb454a7de525a4498"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 27 15:43:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed May 27 15:43:21 2015 +0000"
      },
      "message": "Merge \"Fix msg argument to assert_equal\""
    },
    {
      "commit": "d82d3f13401320ec47757aff0457a307203b28fe",
      "tree": "742707fa09b316ff3f66a08c8e1f2c5e99210ad1",
      "parents": [
        "165afa2377ee8eb6bad1b6cfb454a7de525a4498"
      ],
      "author": {
        "name": "Mahito",
        "email": "m.ogura@ntt.com",
        "time": "Fri May 22 10:37:23 2015 -0700"
      },
      "committer": {
        "name": "Mahito OGURA",
        "email": "m.ogura@ntt.com",
        "time": "Tue May 26 15:33:32 2015 +0900"
      },
      "message": "Add test case to \u0027cidr2netmask\u0027\n\n\u0027cidr2netmask\u0027 of function doesn\u0027t have enough test case\nand test code isn\u0027t smart.\nThis patch adds test case and refactors test code.\n\nChange-Id: Iab20ef06fe78316a78198ab75c0afe738a577dd6\nCloses-bug: #1457989\n"
    },
    {
      "commit": "8606c98c53722f425525fa06eee554b7d30f62f6",
      "tree": "73964254155c511d023dc7315ca80126fa0d549a",
      "parents": [
        "cf56d4e35ca3f5fd406068e757c9e82a7e2c6d61"
      ],
      "author": {
        "name": "fumihiko kakuma",
        "email": "kakuma@valinux.co.jp",
        "time": "Mon Apr 13 09:55:06 2015 +0900"
      },
      "committer": {
        "name": "fumihiko kakuma",
        "email": "kakuma@valinux.co.jp",
        "time": "Tue May 26 12:38:35 2015 +0900"
      },
      "message": "Fix remove_disabled_extensions to remove an extension at the last position\n\nremove_disabled_extensions do matching by \u0027$ext_to_remove\",\"\u0027. So it doesn\u0027t\nmatch an extension at the last position in extensions_list.\nThis patch fixes that.\n\nCloses-Bug: #1443254\nChange-Id: I194b483de797697ba06b320cf33f1bac67fc0cc7\n"
    },
    {
      "commit": "165afa2377ee8eb6bad1b6cfb454a7de525a4498",
      "tree": "701ada8d5f91abe306a842036ed55117d1da690d",
      "parents": [
        "cf56d4e35ca3f5fd406068e757c9e82a7e2c6d61"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon May 25 11:29:48 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon May 25 11:29:48 2015 +1000"
      },
      "message": "Fix msg argument to assert_equal\n\nI noticed this was taking an argument but not dealing with it.  In\ngeneral the functions were undocumented, so I added some terse usage.\n\nAlso, the intent of the test-case was to expand the values before\nusing them as the message; make sure this happens by using a temp\nvariable.\n\nChange-Id: Ib317ad1e9dd2a5d2232b9c64541fe4a601a2b8da\n"
    },
    {
      "commit": "9e220b9b2b560b160c93058b255b3d69e49c0cbc",
      "tree": "c1506e67b15f9cf4a1297c01e36d62704b672725",
      "parents": [
        "bf5de0aee48cd756fcc8e792f2014054c5f5294a"
      ],
      "author": {
        "name": "James E. Blair",
        "email": "jeblair@hp.com",
        "time": "Tue Mar 24 16:32:03 2015 -0700"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "jeblair@hp.com",
        "time": "Thu May 14 07:57:23 2015 -0700"
      },
      "message": "Move trove into in-tree plugin\n\nOnce the trove code is copied into the trove repo and it is used\nas a devstack-plugin, we can remove trove-specific code from\ndevstack.\n\nChange-Id: I8f9f1a015edb7ec1033e2eaf0b29ab15d89384ce\nDepends-On: I3506dec0e6097f9c2e9267110fdfb768faa23c85\n"
    },
    {
      "commit": "98f59aafaf88328f6aee98efa0f563fb8bf91ebd",
      "tree": "26a9c539ec10a34dfc67a1c299c4c8c4f4cf01f5",
      "parents": [
        "e3fcc54b9ba99577d9d74d175b86974aab208514"
      ],
      "author": {
        "name": "Mahito OGURA",
        "email": "earthdragon77@gmail.com",
        "time": "Mon May 11 18:02:34 2015 +0900"
      },
      "committer": {
        "name": "Mahito OGURA",
        "email": "earthdragon77@gmail.com",
        "time": "Mon May 11 18:23:07 2015 +0900"
      },
      "message": "Fix function and test for \u0027trueorfalse\u0027.\n\nThe function\u0027s comment is written as follow, however the function accepts\nother values (ex. \"e\", \"t\", \"T\", \"f\", \"F\", etc...).\n\n---\nAccepts as False: 0 no No NO false False FALSE\nAccepts as True: 1 yes Yes YES true True TRUE\n---\n\nMoreover if testval mach True or False, the function exits without resetting\nxtrace.\n\nThis patch fixes the issue and add test patterns.\n\nChange-Id: Ie48a859476faff22a4dfef466516e2d7d62ef0c0\nCloses-bug: #1453687\n"
    },
    {
      "commit": "641dd9ff23058e511d6bf126b0078448bcb672e5",
      "tree": "d6c40fd4566b9376b11d7bb6bd88c51068776458",
      "parents": [
        "5ed2ba896f81fdf76bad852c083fbd112afc7ee6",
        "2796a82ab48107d4445c03938e037e60dd1bbfa9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu May 07 02:48:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu May 07 02:48:20 2015 +0000"
      },
      "message": "Merge \"Fix negated services with common prefix\""
    },
    {
      "commit": "7efba991f78667c19d13431524c95f77660781c5",
      "tree": "6cb32982a60b0502eb891ef579aa8c8408b16649",
      "parents": [
        "c9197f6c72039b6029dbe3858b78373d7f3aa96d"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 28 13:15:22 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 28 13:15:22 2015 -0400"
      },
      "message": "don\u0027t source openrc\n\nThere is actually no reason why we need openrc for these tests, don\u0027t\nsource it as it prevents some ip math errors from randomly killing\ntests.\n\nChange-Id: Iface7c21898d92e14e840379938b25844cd85565\n"
    },
    {
      "commit": "2796a82ab48107d4445c03938e037e60dd1bbfa9",
      "tree": "532f550099737815e928cfe5e19e04e0ee62c85b",
      "parents": [
        "cd7655cbfcc119e5dafe308ce31e54d3e28b3b63"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Apr 15 08:59:04 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Apr 23 15:10:25 2015 +1000"
      },
      "message": "Fix negated services with common prefix\n\nThe current sed matching mixes up common-prefix matching;\ne.g. \"-q-lbaas,q-lbaasv2\" is changed into just \"v2\"\n\nThis is more verbose, but I think more reliable.  See also\nIb50f782824f89ae4eb9787f11d42416704babd90.\n\nChange-Id: I3faad0841834e24acc811c05015625cf7f848b19\n"
    },
    {
      "commit": "fa3e8412864a92715c296c6ed5e3828dd4bb2205",
      "tree": "5c7c78afbd70df860a8fd6d8b07b62e7e2ba8846",
      "parents": [
        "9b64bbf06eab19534e58a1b7af1757e427e6b3b6"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 11:53:40 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Create config file in merge_config_file\n\nChange If132a94e53545d9134859aa508da7b9819ede2f8 introduced a small\nregression; it added an \"inidelete\" which looks in the config file to\ndelete rows.\n\nHowever, at least for the test-case, the config file isn\u0027t created\nyet.  The end result is that the test fails but we don\u0027t notice.\n\n 2015-04-17 00:55:03.169 | merge_config_file test-multiline: sed: can\u0027t read test-multiline.conf: No such file or directory\n 2015-04-17 00:55:03.195 | OK\n\nSo fix this up by creating the config-file if it isn\u0027t there.\n\nAlso, add \"-e\" to the test file so we catch things like this in the\nfuture.\n\nChange-Id: I43a4ecc247f19cccf51d5931dfb687adbd23d6b1\n"
    },
    {
      "commit": "09f4ad227976eb95d70045b67d0f724294cf7e22",
      "tree": "6291939cda6347ad88bb363679253810616f4214",
      "parents": [
        "9b845da478ae2fb65ac63de95f6005ecacbb52ce"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:13:04 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Convert test_functions.sh to use unittest helpers\n\nThis currently does not exit with any failure code when tests are\nfailing.  Convert it to use the helper functions from unittest.sh so\nit correctly reports failures.\n\nChange-Id: I2062d9c00ebffcc98ba75a12f480e4dd728ee080\n"
    },
    {
      "commit": "9b845da478ae2fb65ac63de95f6005ecacbb52ce",
      "tree": "d7910cf08ed08a08ff7548ea6467ad7a09b09d43",
      "parents": [
        "9b0ebc44f413edac87e52d23e8852ca7c52cb091"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:10:33 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Fix die_if_not_set tests\n\nThe \"die_if_not_set\" test has the LINENO as a positional argument.\nThe existing tests are not passing this in, so they are failing.\n\nAlong with this, remove the \"-x\" from the invocation and hide the\noutput of the tests that are expected to fail to avoid confusion.\n\nChange-Id: Ibf6b9d7bb72b9f92831e1a90292ff8b0bec7faea\n"
    },
    {
      "commit": "9b0ebc44f413edac87e52d23e8852ca7c52cb091",
      "tree": "54e0ddbbebfa125d4397f6923e8e0acc55a3f8bf",
      "parents": [
        "fcdca05de55b9ecec2b66f0cccb88ee01beebbd0"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:06:47 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Move function.sh to test_functions.sh\n\nrun_tests.sh runs tests starting with test_*\n\nThe existing test_functions.sh is really testing true/false.  Move\nthat to test_truefalse.sh\n\nThen move functions.sh to test_functions.sh.  This will ensure it is\nrun during unit testing from run-tests.sh\n\nChange-Id: I959ac38c946da1fb47458b8c4f09157f74f0e644\n"
    },
    {
      "commit": "fcdca05de55b9ecec2b66f0cccb88ee01beebbd0",
      "tree": "c15c2aa2d950b0729127096a891aa986ae850fb6",
      "parents": [
        "f56348bcb2c736b9e66ebfe20c1f118cfc96b9f6"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:02:49 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Fix return of test_ini_config \u0026 test_meta_config\n\nConvert test_ini_config to use the \"passed / failed\" functions in\nunittest.sh.  test_meta_config wraps everything into a function; it\u0027s\nnot work unrolling this so just make sure it exits with non-zero if a\ntest fails.\n\nChange-Id: I9e9883fdad42358255383eede9121b1d361799c8\n"
    },
    {
      "commit": "f56348bcb2c736b9e66ebfe20c1f118cfc96b9f6",
      "tree": "bfe97606b919e4f1c89dbc4c1d4871cfdb031266",
      "parents": [
        "1cb809d8ef81931ea0b1f15619b7e830281f2556"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 12:58:56 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:25 2015 +1000"
      },
      "message": "Use unittest help in test_ip.sh\n\nUse the unittest helper to track test runs and correctly exit with a\nfailure code if there is a problem\n\nChange-Id: Ie62f354a8cd3b8fd5986e6943a073f7955fb55ba\n"
    },
    {
      "commit": "1cb809d8ef81931ea0b1f15619b7e830281f2556",
      "tree": "d962b2f92bbaa538847e3ebde65f7177004612c5",
      "parents": [
        "6f2d9b1f7d08aaa01acbe29fcfa596080470e093"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 12:55:38 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Apr 17 13:23:20 2015 +1000"
      },
      "message": "Add \"passed\" and \"failed\" functions\n\nAdd two generic \"passed\" and \"failed\" functions to the unittest\nhelper.  Also keep a count of passed and failed tests.  Later changes\nwill use these functions to ensure they exit with a correct return\ncode.\n\nChange-Id: I8574dcb1447b04fcda3d72df0bf8605cf7488d3c\n"
    },
    {
      "commit": "1bd79596c3c5f62cbbef92558156401447a9b5d3",
      "tree": "3498da8181326cc9421975135d9123268339f974",
      "parents": [
        "4cc060e77c58882f9728c2515e65d205d0e969dd"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Tue Feb 24 14:06:56 2015 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Thu Mar 26 14:00:02 2015 +0100"
      },
      "message": "Move back isset to the functions-common\n\nisset function was moved to config file related functions by accident,\nthis change also simplfies the isset in a bash \u003e\u003d4.2 way.\n\nAll supported distro has at least bash 4.2. (RHEL6 used 4.1)\n\nChange-Id: Id644b46ff9cdbe18cde46e96aa72764e1c8653ac\n"
    },
    {
      "commit": "bf2ad7015d068f9a85c01813cea0aa79143b1d0f",
      "tree": "ab1a91e8e13a882ee4dab1a70141c31133a5815b",
      "parents": [
        "924079b8905669a646cfa328d6bf52e56b79acdc"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Mar 09 15:16:10 2015 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Mar 09 22:52:19 2015 -0500"
      },
      "message": "Move configuration functions into inc/*\n\n* config/INI functions from functions-common to to inc/ini-config\n* local.conf meta-config functions from lib/config to inc/meta-config\n\nChange-Id: I00fab724075a693529273878875cfd292d00b18a\n"
    },
    {
      "commit": "aca8a7fd991484a59fc20aadc3cedb339fc55ca5",
      "tree": "d6097ff70df28eb96d5afa2f36f034001d94536c",
      "parents": [
        "aff8fb9be8b48d6f05f4e00561f714346befc846"
      ],
      "author": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Tue Mar 03 08:50:27 2015 -0800"
      },
      "committer": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Tue Mar 03 08:50:27 2015 -0800"
      },
      "message": "Add support for oslo.versionedobjects\n\nChange-Id: I01dba39259a3b264d4ec2b21db8429d340751979\n"
    },
    {
      "commit": "ee9064b76293ec8838f7a3a52ed1de45056f6201",
      "tree": "73aa122948560f99a1f1549a472152dbdb56c43e",
      "parents": [
        "231a3e55876f299252b0bea4bcb6487ba501d09b"
      ],
      "author": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Thu Feb 19 15:06:23 2015 -0800"
      },
      "committer": {
        "name": "Joshua Harlow",
        "email": "harlowja@yahoo-inc.com",
        "time": "Tue Feb 24 12:55:13 2015 -0800"
      },
      "message": "Add debtcollector to lib/oslo and stackrc\n\nEnsure that the debtcollector library is pulled in\nlike the other oslo libraries so that devstack can\nuse it where appropriate.\n\nAlso fixes \u0027test_libs_from_pypi.sh\u0027 to not have a huge\nsingle line of libraries; and splits it into multiple\nlines so the diffs and code can be easily looked at.\n\nChange-Id: I35ab0ed0e20b6092a41ecb3b6f1aaf0a05f5180e\n"
    },
    {
      "commit": "20b027b79cf628a8be974bc5b9aff17b46c773b3",
      "tree": "c9c125f471bbe9519ae3173b828eb8ab974ac6ea",
      "parents": [
        "9f86ec2f4d2fd4eda07d85e70daefcf2384e4d01"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Wed Feb 04 02:38:13 2015 -0500"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Wed Feb 18 23:21:20 2015 -0500"
      },
      "message": "Add oslo.policy to lib/oslo and stackrc\n\nAs per the graduation work items, any new libraries should be\nadded to lib/oslo and stackrc\n\npartially implements bp graduate-policy\n\nChange-Id: Ief8f28715ecff5a602d6d840d736ea07b5e7ff39\n"
    },
    {
      "commit": "ad61e7f9dd6cd0e19204e0ce5a15c0d7888b752a",
      "tree": "8a3544c1840f48b01826d002575c8c4031f4969f",
      "parents": [
        "314723962b72612b6238e3143feb7ab4f1a3fb60"
      ],
      "author": {
        "name": "gordon chung",
        "email": "gord@live.ca",
        "time": "Thu Feb 12 15:17:25 2015 -0500"
      },
      "committer": {
        "name": "gordon chung",
        "email": "gord@live.ca",
        "time": "Thu Feb 12 18:07:02 2015 -0500"
      },
      "message": "add ceilometermiddleware lib\n\nmiddleware in ceilometer has been broken into it\u0027s own lib. this\nfirst patch adds the package.\n\nChange-Id: I63795787b909effcc4fcdee7f262207bb59fd8c2\n"
    },
    {
      "commit": "365421b99a6e76cd3c2e3dbb02638005e456abf8",
      "tree": "48cbc1b72603ee7de32522140fded56e21ca9559",
      "parents": [
        "e79678af5ed1621cd8740879b496a0d3716ab8b1"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Feb 06 15:27:43 2015 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Feb 06 15:27:43 2015 -0500"
      },
      "message": "isolate unit tests from stackrc HOST_IP check\n\nThe HOST_IP check in stackrc is useful for real users, but some cloud\nnodes that infra runs don\u0027t detect it correctly, and it\u0027s not actually\nrequired for unit tests to work right.\n\nChange-Id: Id2aaa713aea91825021e9d8d49d19f3e40a8e6c9\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": "1f65fd64ce2f4ed32a706f9bcb28c2ee0cf51e5b",
      "tree": "17da92dbb44093a59992333a3351cb5850983386",
      "parents": [
        "bfdddebc28e088ce9449feac8740901b82cc1c9b"
      ],
      "author": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Sat Dec 13 11:56:16 2014 -0700"
      },
      "committer": {
        "name": "Doug Wiegley",
        "email": "dougw@a10networks.com",
        "time": "Sun Dec 14 20:50:00 2014 -0700"
      },
      "message": "Clear multi-line sections before adding lines\n\nWith multiline support for local.conf, the first line is created with\niniset, which will set *all* previous lines to the same thing, and then\nsubsequent lines will be added. Modify the multiline support to first\nclear existing lines from the section.\n\nThis causes fatal errors with neutron.conf, which defines drivers with a bunch\nof service_provider\u003d options, and the current code ends up with the first\ndriver defined in local.conf being present twice.\n\nChange-Id: If132a94e53545d9134859aa508da7b9819ede2f8\n"
    },
    {
      "commit": "c187b88e698a203a222b38cbf3a045b520918042",
      "tree": "075bf71137754c344504efc767848ff70cc619f8",
      "parents": [
        "5853160c6e0a0c7601beea122d5f690ca6bba082"
      ],
      "author": {
        "name": "Julien Danjou",
        "email": "julien@danjou.info",
        "time": "Tue Dec 09 15:41:55 2014 +0100"
      },
      "committer": {
        "name": "Julien Danjou",
        "email": "julien@danjou.info",
        "time": "Tue Dec 09 15:41:55 2014 +0100"
      },
      "message": "Add tooz support from Oslo\n\nChange-Id: I4ccf4bf08e10c0ba651f973aa62562af85ea0f19\n"
    },
    {
      "commit": "aecd189f80533b2680184d648f393bd0f5479882",
      "tree": "b4e4194920fc2e89297390bf93d0d84106015d80",
      "parents": [
        "576aaae6f74c55ab65280c287f3b12a274e6e683"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Nov 19 15:19:51 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Nov 20 08:32:26 2014 -0500"
      },
      "message": "add unit tests for GIT* definitions\n\nThis adds unit tests for all the GIT* definitions, ensuring that for\nlibraries we think should be defined, they are. It exposed a bug in\nglance_store definitions in the process.\n\nThe GITDIR definition for python-openstackclient is moved to stackrc\nfor testability.\n\nChange-Id: Ibd9ab665f0362a84f4f7e80e80da56a4737f584e\n"
    },
    {
      "commit": "9f20ea13826234ac2c508ea1d50a0822b68d42dc",
      "tree": "741cd1b7e72ea2bd15764471278dc58d7827efdf",
      "parents": [
        "9bfdea87a6ceea667a3c674215099ce8a967a3c2"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Nov 17 15:14:49 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Nov 18 11:33:47 2014 +0000"
      },
      "message": "make run_tests.sh run devstack unit tests\n\nrun_tests.sh was created as an entry point for bashate. We stopped\nusing it now that we know how to run bashate directly in the gate. \nWe lost running an unrelated bashate test when that happened.\n\nDevstack does have unit tests. We don\u0027t run them. We should. \nEspecially when working on things like the LIBS_FROM_GIT which is\nsufficiently tricky that we really need to add unit tests to ensure\nthat we don\u0027t break it.\n\nChange-Id: Ife067855569e2eae4c085471d326e8086de37332"
    },
    {
      "commit": "f3bf8b6cc0dc94684a3bbecc4cc1e2169506f804",
      "tree": "2bbc4cc3bbeef0641dfd7aeaff81e3c770d547e3",
      "parents": [
        "6fe32059de58964c8f089977539262f288df4601"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 29 21:53:56 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 29 22:12:17 2014 +1100"
      },
      "message": "Revert \"Single quote iniset argument in merge_config_file\"\n\nThis reverts commit e2c9fee8ed846aba124a2fc1bba245790ed7ba90.\n\nWe have decided that we don\u0027t want to support the json-style argument\nas described by bug#1374118 (see thread at [1]).\n\nThis restores the old behavior of sending the argument in\ndouble-quotes so environment variables get expanded.  As a bonus,\ntests for this are added.\n\n[1] http://lists.openstack.org/pipermail/openstack-dev/2014-October/049341.html\n\nChange-Id: I9fc99f3716cc53366907878adb00ae6cf3898f14\nCloses-Bug:#1386413\n"
    },
    {
      "commit": "751ad1aadf8447c2b6945b6ae4ab73bf71a244ca",
      "tree": "dd29652859f3a425f8a7f2853149c157d743f6f4",
      "parents": [
        "ddfbacef9fd0bd64b38674524f7829b42ed08bbd"
      ],
      "author": {
        "name": "Robert Li",
        "email": "baoli@cisco.com",
        "time": "Wed Oct 15 21:40:53 2014 -0400"
      },
      "committer": {
        "name": "Robert Li",
        "email": "baoli@cisco.com",
        "time": "Wed Oct 15 21:44:31 2014 -0400"
      },
      "message": "Allow multi-line config items in meta-section of local.conf\n\nIt would behave such as the contents from each meta-section in\nlocal.conf is copied to the destination files. One exception is the multiline\noptions not grouped together. In that case, the contents will be grouped\ntogether in its destination config file.\n\nCheck tests/test_config.sh for examples.\n\nThis was originally committed in https://review.openstack.org/128805.\nBut the original change used AWK syntax that is not supported in AWK\n3.1.8, and caused syntax error on servers with that AWK version. This\npatch makes the necessary change so that it\u0027s compatible with AWK\n3.1.8.\n\nChange-Id: Id1e1fe01f05bd0f19ea6e89c4f4c0f8be695dfce\nPartial-Bug: #1374118\n"
    },
    {
      "commit": "e0d6a46b8afaeacc070a84f58ecf8e03ffe8275c",
      "tree": "7ad40b60df1239e2ef553031685ef84daa21fd9b",
      "parents": [
        "a7eb07a3e22eb0362b28cec4bd289201a9adf699"
      ],
      "author": {
        "name": "Kevin Benton",
        "email": "blak111@gmail.com",
        "time": "Tue Oct 14 04:54:42 2014 -0700"
      },
      "committer": {
        "name": "Kevin Benton",
        "email": "blak111@gmail.com",
        "time": "Tue Oct 14 04:54:42 2014 -0700"
      },
      "message": "Add test case for colon in value\n\nAdds a test case for a colon in a value\n\nChange-Id: Ica56b8af5fa59a008cfe96424b1d3e17fd6cf7d6\n"
    },
    {
      "commit": "a7eb07a3e22eb0362b28cec4bd289201a9adf699",
      "tree": "f71ea7688ba146a393e4e17acfecf2592a486cef",
      "parents": [
        "e9c70ab4097cd8d1991a893811dbd862ee001f10"
      ],
      "author": {
        "name": "Kevin Benton",
        "email": "blak111@gmail.com",
        "time": "Tue Oct 14 04:35:59 2014 -0700"
      },
      "committer": {
        "name": "Kevin Benton",
        "email": "blak111@gmail.com",
        "time": "Tue Oct 14 04:38:56 2014 -0700"
      },
      "message": "Revert \"Allow multi-line config items in meta-section of local.conf\"\n\nThis reverts commit 6ff21acf4c4d4ef08bbef419ba582cade4da8da7.\n\nThis commit has broken config options with colons in them.\nThe following is a sample configuration that no longer works:\n\n[[post-config|/etc/neutron/plugins/ml2/ml2_conf.ini]]\n[restproxy]\nserver_ssl\u003dFalse\nservers\u003d10.211.1.9:80\nserver_ssl\u003dFalse\n\nWith the above config and the code present that this reverts,\nthe \u0027servers\u0027 option will come out blank.\n\nChange-Id: I328852d2d941605051a1bf5eaf0f7674191f8c48\n"
    },
    {
      "commit": "6ff21acf4c4d4ef08bbef419ba582cade4da8da7",
      "tree": "b5acb9e70c03cb15be733339b742f3bf9d10ae87",
      "parents": [
        "cc87c2871dc436b2134f60e9fa4663723a094ebd"
      ],
      "author": {
        "name": "Robert Li",
        "email": "baoli@cisco.com",
        "time": "Fri Oct 10 12:43:05 2014 -0400"
      },
      "committer": {
        "name": "Robert Li",
        "email": "baoli@cisco.com",
        "time": "Fri Oct 10 12:53:24 2014 -0400"
      },
      "message": "Allow multi-line config items in meta-section of local.conf\n\nIt would behave such as the contents from each meta-section in\nlocal.conf is copied to the destination files. One exception is the multiline\noptions not grouped together. In that case, the contents will be grouped\ntogether in its destination config file.\n\nCheck tests/test_config.sh for examples.\n\nChange-Id: I8c046b558eeb98ed221f6f1a59182d4179956ced\nPartial-Bug: #1374118\n"
    },
    {
      "commit": "cc87c2871dc436b2134f60e9fa4663723a094ebd",
      "tree": "253024468ea6f45620386034ba09b0fa654043ee",
      "parents": [
        "284492cc1194bb2f156f860d35b5a1a46ac5b179"
      ],
      "author": {
        "name": "Fergal Mc Carthy",
        "email": "fergal.mccarthy@hp.com",
        "time": "Thu Oct 09 16:16:42 2014 -0400"
      },
      "committer": {
        "name": "Robert Li",
        "email": "baoli@cisco.com",
        "time": "Fri Oct 10 08:25:38 2014 -0400"
      },
      "message": "local.conf processing doesn\u0027t handle \u0027\u003d\u0027 in values\n\nWhen attempting to add a libvirt section with a volume_drivers entry\nto $NOVA_CONF, via a post-config block in the local.conf file, I\nencountered problems; the value for this attribute takes the form\n\n    driver\u003dpython.import.path.to.driver\n\nbut the value actually populated in the $NOVA_CONF was truncated at the\nequals.\n\nTaking the iscsi driver setting specified in the official nova.conf\ndocumentation as an example, if I have the following in my local.conf\nfile:\n\n[[post-config|$NOVA_CONF]]\n[libvirt]\nvolume_drivers \u003d iscsi\u003dnova.virt.libvirt.volume.LibvirtISCSIVolumeDriver\n\nI will see that the generated $NOVA_CONF has the following:\n\n[libvirt]\nvolume_driver \u003d iscsi\n\nThis occurs because the existing handling for a post-config setion, as\nimplemented in merge_config_file(), splits the line on the equals sign,\nand then uses the first and seconds elements of the resulting array as\nattribute name and value respectively.\n\nHowever when an equals occurs as part of the value this results in the\nvalue being truncated at the first equals in the value.\n\nThe fix I\u0027ve implemented, based upon review feedback, extracts the\ncontents of $0 before the first equals as the attr name, and extracts\nthe remainder after the equals as the value. Then it strips the leading\nand trailing whitespaces from both as appropriate.\n\nI\u0027ve also added test5 to tests/test_config.sh to test for, and verify,\ncorrect operation when this scenario is encountered.  Similarly I\u0027ve\nadded test6 to ensure that trailing spaces in values are stripped\ncorrectly.\n\nChange-Id: Id0cb1e6e1cece21bc5dbf427c4d756af86fbd927\nCloses-Bug: #1374482\n"
    },
    {
      "commit": "e2c9fee8ed846aba124a2fc1bba245790ed7ba90",
      "tree": "589865dd5959c3e0f9645dd1282c2a6dd4ee93d3",
      "parents": [
        "690e3c25742f47fd2a42d6407ffa30bc99288dc0"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Sep 26 09:42:11 2014 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Oct 07 12:16:00 2014 +1100"
      },
      "message": "Single quote iniset argument in merge_config_file\n\nIf we don\u0027t single quote the extracted argument to iniset we drop any\nquotes from the source.  Add a simple test-case for this.\n\nPartial-bug: #1374118\n\nChange-Id: If2f47b64b11015e727a011c7e5f6e8ad378b90eb\n"
    },
    {
      "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": "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": "410f5c0016a9d3b1fbd42b95ce1402a1c614e3d3",
      "tree": "51b01c296832b71b71aac47f6ef3969d57163ab9",
      "parents": [
        "4fbb8137af8c3e0e5805db7337651048f11b6bb2"
      ],
      "author": {
        "name": "Ryota MIBU",
        "email": "r-mibu@cq.jp.nec.com",
        "time": "Fri Apr 04 02:00:31 2014 +0900"
      },
      "committer": {
        "name": "Ryota MIBU",
        "email": "r-mibu@cq.jp.nec.com",
        "time": "Tue Jun 17 15:43:07 2014 +0900"
      },
      "message": "Fix unsubstituted filename creation\n\nSince merge_config_file() tries to create an unsubstituted config file,\nstack.sh fails due to permission denied in the file creation when you\nuse \u0027[[post-config|/$Q_PLUGIN_CONF_FILE]]\u0027 and the file does not exist.\n\nThis patch deletes unnecessary \u0027touch\u0027 command, because the file will\nbe made by \u0027iniset\u0027 function in the next command line with evaled\nstring from \u0027configfile\u0027.\n\nThis patch also fixes merge_config_group() to use evaled \u0027configfile\u0027\nwhen it checks the directory of the config file exists.\n\nChange-Id: I608847a34143b5c6a1708c180186dd88a32dd44b\nCloses-bug: #1294213\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": "16dd8b3ed94d5cd217d22a26c18dca52bfca115e",
      "tree": "62994b309b39fc5d4920808f506e763feb3b6f07",
      "parents": [
        "e38cad092ff96dc0178a19fe6f33f13db99eebb0"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Mon Feb 03 09:10:54 2014 +0900"
      },
      "committer": {
        "name": "Chmouel Boudjnah",
        "email": "chmouel@enovance.com",
        "time": "Wed Feb 05 07:52:54 2014 +0100"
      },
      "message": "introduce if/then \u0026 for/do rules\n\nwe mostly have a consistent style on if/then \u0026 for/do in devstack,\nexcept when we don\u0027t. This attempts to build a set of rules to\nenforce this.\n\nBecause there are times when lines are legitimately long, and there\nis a continuation, this starts off ignoring if and for loops with\ncontinuations. But for short versions, we should enforce this.\n\nChanges to make devstack pass are included. The fact that the\ncleanup patch was so small is pretty solid reason that this is\nactually the style we\u0027ve all agreed to.\n\nPart of a git stash from hong kong that I finally cleaned up.\n\nChange-Id: I6376d7afd59cc5ebba9ed69e5ee784a3d5934a10\n"
    },
    {
      "commit": "cd7d956fbc30eae3c1694b187ea605a5f0d960d3",
      "tree": "18c30423780b6642155ebcefb7212db542a27681",
      "parents": [
        "78411958fd086acc0270c2380dd61f03ebd1f451"
      ],
      "author": {
        "name": "Andrea Frittoli",
        "email": "andrea.frittoli@hp.com",
        "time": "Thu Dec 05 08:09:12 2013 +0000"
      },
      "committer": {
        "name": "Andrea Frittoli",
        "email": "andrea.frittoli@hp.com",
        "time": "Thu Dec 12 12:24:55 2013 +0000"
      },
      "message": "Handle the case of pipe char in value for iniset\n\niniset did not handle the case of \"|\" in the value\nto be injected. Fix this by replacing | with \\000 (NULL).\n\nFixes bug #1258050\n\nChange-Id: I8882c2f3f177ebdfa0c66270dbbc7fd50f30b065\n"
    },
    {
      "commit": "2ac8b3f3c2ebe586802d7789cf152b13fe0d0497",
      "tree": "118837bd091932efab16e3fd59ec1e5f1824c6f9",
      "parents": [
        "df8410c387034bec1b82c8f9d9fd949967f7080b"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Dec 04 17:20:28 2013 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Dec 09 10:30:02 2013 -0600"
      },
      "message": "Fix a couple of INI whitespace bugs\n\n* iniset() bails if no section or option (attribute) is supplied\n* merge_config_file() properly skips lines with only whitespace\n\n* Also split the ini-tests into their own script\n\nBug 1257954\n\nChange-Id: Ie31c5bd0df8dfed129fbcf1e37228aaf25e9305d\n"
    }
  ],
  "next": "922c8ae6804304841167fcca662726e1e26b556a"
}
