)]}'
{
  "log": [
    {
      "commit": "01c0cc6d37ccca13e0e7e48a58dcc7ba98967f1c",
      "tree": "e09d82040275bb8936f488ecfb377050e78feac3",
      "parents": [
        "dcdf8c8e60a9db0adb4ee5cae98ed7cc511ecf83"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Jul 27 20:53:57 2017 +0000"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Jul 27 20:53:57 2017 +0000"
      },
      "message": "Revert \"Wait for compute service to check in\"\n\nThis reverts commit dcdf8c8e60a9db0adb4ee5cae98ed7cc511ecf83.\n\nChange-Id: Ib14016a3bc6f2714758ad0291396233218c593c6\n"
    },
    {
      "commit": "dcdf8c8e60a9db0adb4ee5cae98ed7cc511ecf83",
      "tree": "ee3f4c5619f885d97e7e57f6b9b2b82b6ae6de4f",
      "parents": [
        "331b3de88e02d6cc480b386766f47b7a2d943125"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Jul 25 19:51:08 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Jul 26 07:26:50 2017 -0400"
      },
      "message": "Wait for compute service to check in\n\nWith cell v2, on initial bring up, discover hosts can\u0027t run unless all\nthe compute nodes have checked in. The documentation says that you\nshould run ``nova service-list --binary nova-compute`` and see all\nyour hosts before running discover hosts. This isn\u0027t really viable in\na multinode devstack because of how things are brought up in parts.\n\nWe can however know that stack.sh will not complete before the compute\nnode is up by waiting for the compute node to check in before moving\nforward. This puts a few more seconds into the run, but ensures\neverything is solid in multinode environments.\n\nChange-Id: I667e6a9be3fee8bb5bfd73426eef567489e3d88d\n"
    },
    {
      "commit": "07cbc4494255efa2c394b4b60e5beaa3d10f244e",
      "tree": "ec5a8fad64755ba2e2968f1fe587d41b43f7eaa9",
      "parents": [
        "3415521d5659b2268b8984bf89ede8e34f1b76f7"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Jun 30 12:29:19 2017 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Jul 03 11:56:16 2017 +1000"
      },
      "message": "Put devstack-version info into separate file\n\nAs a follow on to I4c269a7f3d63ee9a976e7c3636fc3e5e8dab9ae3; the\nquoting gets tricky when putting arbitrary command-substitution\nstrings into saved echo-able strings.  As they say, \"the only winning\nmove is not to play\" :)\n\nAn alternative proposal is to not write this into a script but just\ndump info into a file.  To my mind, this has several advantages --\navoid getting involved in quoting, not dropping a script into the\nglobal environment -- it\u0027s just as easy to \"cat\" -- and the plain-text\nfile can be collected as an artifact during log collection (also moved\ngit commit line to separate line for easier parsing during log search,\netc).\n\nChange-Id: Ic7391dd087657c0daf74046e4a052c53f4eb6e1a\n"
    },
    {
      "commit": "3415521d5659b2268b8984bf89ede8e34f1b76f7",
      "tree": "6251357d7057cad26381d2981f1f3cdd433cb227",
      "parents": [
        "248d54b51b049355b22cf17a1473415ad7661f56"
      ],
      "author": {
        "name": "Manjeet Singh Bhatia",
        "email": "manjeetingh1156@gmail.com",
        "time": "Fri Jun 30 01:46:12 2017 +0000"
      },
      "committer": {
        "name": "Manjeet Singh Bhatia",
        "email": "manjeet.s.bhatia@intel.com",
        "time": "Fri Jun 30 02:01:06 2017 +0000"
      },
      "message": "Don\u0027t dump commit message header to devstack-version\n\nDumping commit message to /usr/local/bin/devstack-version\nhas broken devstack build, because of bash error in formatting.\nerror log [1].\n\n[1]. http://logs.openstack.org/20/418720/6/check/gate-tempest-dsvm-networking-odl-boron-snapshot-v2driver/ed9fd45/logs/devstacklog.txt.gz\n\nChange-Id: I4c269a7f3d63ee9a976e7c3636fc3e5e8dab9ae3\n"
    },
    {
      "commit": "2c0faca0380050b697b7d7fe6589102fa8a0cb5d",
      "tree": "88be4978c5d85231cf684df74582c3d20b260069",
      "parents": [
        "87362e572204ed7a8d66b7d4c518735bd311f256"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Jun 28 09:13:04 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Jun 28 13:53:37 2017 -0400"
      },
      "message": "Add devstack-version script\n\nThis will help in collecting information about the devstack version\nbeing used.\n\nChange-Id: I23a8ca023bda6d097051cd57ae45401806451ad5\n"
    },
    {
      "commit": "805304f2ce60b1bec7e245a0492697472ecbf788",
      "tree": "058ce5ad377653271608e43cb8eac43257fd3d9c",
      "parents": [
        "d9d10df6cd28d9bc88fb0114b26f3551586d3f14",
        "309b99ebcfa9d8bcf18c1d3eed1e52787c63f8c7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jun 20 09:11:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jun 20 09:11:25 2017 +0000"
      },
      "message": "Merge \"Add a function to get an available random port\""
    },
    {
      "commit": "4bca73957689f3ef0bcdc7cc9049ba7baef97e7b",
      "tree": "865642bb65d982005b2f762bc4f5ee511f1166e1",
      "parents": [
        "bc8d7ef89e26b5d428b741deda3ce08d676e5d47",
        "c0644f39a47958a416a82f10f1091d07fec97896"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jun 06 13:24:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jun 06 13:24:32 2017 +0000"
      },
      "message": "Merge \"Use correct argument order in truorfalse for USE_JOURNAL\""
    },
    {
      "commit": "86f9bc7b0b227925fffdc0a46c61e793d39ee482",
      "tree": "ba0357758f7fd055f77fc04d9a06ac0979174086",
      "parents": [
        "b3ced44e37d7dea38188209b5380f7c2fcd34b1a",
        "e123edeebf1559731b451cec0fd3c06ff974bbf2"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 31 12:29:52 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed May 31 12:29:52 2017 +0000"
      },
      "message": "Merge \"Add global_request_id to systemd logs\""
    },
    {
      "commit": "309b99ebcfa9d8bcf18c1d3eed1e52787c63f8c7",
      "tree": "be009730bf943b1b88460b4304cc62c5d2fe20ee",
      "parents": [
        "23ed6666ed5dd6eb59a1b9f37a569577cad83663"
      ],
      "author": {
        "name": "Matthew Treinish",
        "email": "mtreinish@kortar.org",
        "time": "Tue May 23 15:18:31 2017 -0400"
      },
      "committer": {
        "name": "Matthew Treinish",
        "email": "mtreinish@kortar.org",
        "time": "Sun May 28 10:04:53 2017 -0400"
      },
      "message": "Add a function to get an available random port\n\nThis commit adds a new function get_random_port to return a randomly\navailable port from the local port range.\n\nChange-Id: Icaed180cc14602a74cdb3fd3456b690d8a4c729c\n"
    },
    {
      "commit": "e123edeebf1559731b451cec0fd3c06ff974bbf2",
      "tree": "d032c52973fa67c0dab79982db332bf080b1a2c8",
      "parents": [
        "6a62619cbc28625755a76eae08b529438eb4f281"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue May 23 15:53:48 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri May 26 07:18:32 2017 -0400"
      },
      "message": "Add global_request_id to systemd logs\n\nWith cinder supporting this now, start logging global_request_id in\nsystemd logs. It will be None for all the services until the work\nstarts coming together, but it is safe to do.\n\nChange-Id: Ic6ba1a42da88c03e43d89658b453f6a0b353e0db\n"
    },
    {
      "commit": "c0644f39a47958a416a82f10f1091d07fec97896",
      "tree": "2bee1dc5dd18df097a9c09991174a520b30a9957",
      "parents": [
        "793db3ac359f16207b1b5ca0f98dfb64c4aa2090"
      ],
      "author": {
        "name": "Kirill Zaitsev",
        "email": "k.zaitsev@me.com",
        "time": "Wed May 24 13:00:47 2017 +0300"
      },
      "committer": {
        "name": "Kirill Zaitsev",
        "email": "k.zaitsev@me.com",
        "time": "Thu May 25 12:16:11 2017 +0000"
      },
      "message": "Use correct argument order in truorfalse for USE_JOURNAL\n\ntruorfalse function from common-functions accepts default as the first\nparameter. The arguments for USE_JOURNAL were mixed up and this commit\nrestores correct order.\n\nChange-Id: Id3621b0e1910a625d6cfb8e81bd27bea82543ae9\n"
    },
    {
      "commit": "2715fd0b4acf44842ceb67760bbc348093e7d70d",
      "tree": "5bfc8a9cb0175bbd80d8abe40b1155b95aa76186",
      "parents": [
        "08de346d0354586b3e8ca2321cb3272eb9b32828"
      ],
      "author": {
        "name": "Lucian Petrut",
        "email": "lpetrut@cloudbasesolutions.com",
        "time": "Wed May 24 11:31:56 2017 +0300"
      },
      "committer": {
        "name": "Lucian Petrut",
        "email": "lpetrut@cloudbasesolutions.com",
        "time": "Wed May 24 13:36:57 2017 +0300"
      },
      "message": "Do not upload vhdx images as vhd\n\nThis change ensures that when uploading vhdx images, we use the\nproper format.\n\nAt the moment, vhdx images are uploaded as vhd, which can be\ntroublesome: first because this is misleading, second because the\nactual image format may be checked, having the image rejected.\n\nChange-Id: I9578be41ea9dc252404b7553679ac527e08a0ff6\n"
    },
    {
      "commit": "e19abda40a48f4ee33b307cf7563c162bbe33084",
      "tree": "cbefdd77689cd2396ad5aa9b46c63fcbd19533b2",
      "parents": [
        "5ff1b476e49358c06629e96a52e7cfab2a1adeed",
        "8cd310d7638843f07f4c88adaf3aed9db7668073"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed May 17 20:10:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed May 17 20:10:30 2017 +0000"
      },
      "message": "Merge \"Restore log colors under devstack/systemd\""
    },
    {
      "commit": "8cd310d7638843f07f4c88adaf3aed9db7668073",
      "tree": "14ea21f0f52c2804940f15e6ac0f479a33f79cf1",
      "parents": [
        "ac042d41222eea83bf360b4db89c4c7bf415457d"
      ],
      "author": {
        "name": "Eric Fried",
        "email": "efried@us.ibm.com",
        "time": "Tue May 16 13:52:03 2017 -0500"
      },
      "committer": {
        "name": "Eric Fried",
        "email": "efried@us.ibm.com",
        "time": "Tue May 16 14:56:57 2017 -0500"
      },
      "message": "Restore log colors under devstack/systemd\n\nOne of the pending issues with the conversion to systemd was the loss of\nlog coloring.  It turns out that journalctl by default strips out\ncharacters it considers \"unprintable\" - including the color codes\nemitted by the old-style logging.  However, journalctl can be made to\nprint them by adding the `-a` flag.\n\nThis change makes devstack\u0027s log formatter conf settings include color\ncodes like the old screen-based setup used to\n\nWe also remove stackrc\u0027s setting of JOURNALCTL_F, whose usage was\nremoved via I6af6d1857effaf662a9d72bd394864934eacbe70.\n\nChange-Id: I2401e267913a24d18dae355aa933072dbbdab1d8\n"
    },
    {
      "commit": "1f55d38911cec5e597e7b10cc7324804c2ba063f",
      "tree": "e15c1ed97ba13b5aa757b17b3c04ae475b135535",
      "parents": [
        "ac042d41222eea83bf360b4db89c4c7bf415457d"
      ],
      "author": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Tue May 16 08:50:53 2017 -0700"
      },
      "committer": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Tue May 16 09:23:28 2017 -0700"
      },
      "message": "Add systemd ulimit override function and set an override for NOFILE\n\nThis sets our default ulimit NOFILE to 2048, which is double what we\nset things like mysql\u0027d max_connections to.\n\nChange-Id: I5126bed1e6b9f8c64db00eae4151ac61e47b1bf8\n"
    },
    {
      "commit": "f24e29920b9ec40e924c71bbe1999e027d61390e",
      "tree": "0d661ca2e4127bc1d958339cd0ac73d04f16ccd6",
      "parents": [
        "27df725179045a2e91a34eb91e29e52d0fe5f663"
      ],
      "author": {
        "name": "Angel Noam",
        "email": "noama@mellanox.com",
        "time": "Thu May 11 15:13:29 2017 +0300"
      },
      "committer": {
        "name": "Angel Noam",
        "email": "noama@mellanox.com",
        "time": "Thu May 11 15:13:29 2017 +0300"
      },
      "message": "Add support for image name end with .raw\n\nChange-Id: If3bd42825a29755fa8e68fa5661d068c6f0019d2\n"
    },
    {
      "commit": "b2bfe5617ac43a678a9113d5c955f5456c151319",
      "tree": "6dbd57dca25f592af04d90ce1ddf672710f948bb",
      "parents": [
        "8b8441f3becbae2e704932569bff384dcc5c6713"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed May 03 09:58:21 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed May 03 18:35:54 2017 +0000"
      },
      "message": "Turn off use_journal because of eventlet concerns\n\nuse_journal uses the systemd native path for logging, however there\nare concerns that this might be negatively interacting with\neventlet. To be on the safe side fall back to stdout.\n\nThis introduces a USE_JOURNAL option which will let folks turn this\nback on for testing.\n\nThis also adjusts the debug lines. When using the journal the pid\nreported by systemd is correct. When using stdout, it will be the\nparent process id, so we need to keep it to see which child each thing\nis coming from.\n\nChange-Id: Id7891c532bf99c099252e82d511a37a49506fea9\n"
    },
    {
      "commit": "5cd44dbe6c0a641258f36d7959952bc971435b74",
      "tree": "5c2a08837c7ed7cd137f5416f8c74738079fffb6",
      "parents": [
        "def07b21f86ee70cae223785f0195c91de1f2b64"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Apr 05 07:23:37 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Apr 05 07:24:13 2017 -0400"
      },
      "message": "add use_journal if we are enabling systemd\n\nThis is going to be a new option in oslo.log, which we can start\nsetting early to make it take effect.\n\nChange-Id: If0e5e4717a1810c759058f33608fbac7543f2d85\n"
    },
    {
      "commit": "5edae54855b6b9af4283cef07e0b0d1a0f90cd3e",
      "tree": "38a1c4516ffc6f472f455363fac5bd24c5b65425",
      "parents": [
        "fb73a8fc6fa8cdc826b10c47490bc47cd0e6776a"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Mar 21 20:50:24 2017 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Mar 28 07:19:15 2017 -0400"
      },
      "message": "initial work to enable systemd service running\n\nDuring the PTG there was a discussion that the screen developer\nworkflow wasn\u0027t nearly as useful as it once was. There were now too\nmany services to see them all on one screen, and one of the most\ncommon service restart scenarios was not restarting one service, but a\nbunch to get code to take effect.\n\nThis implements a 3rd way of running services instead of direct\nforking via bash, or running under screen, which is running as systemd\nunits.\n\nLogging is adjusted because it\u0027s redundant to log datetime in oslo.log\nwhen journald has that.\n\nSwift needed to have services launched by absolute path to work.\n\nThis is disabled by default, but with instructions on using it. The\nlong term intent is to make this the way to run devstack, which would\nbe the same between both the gate and local use.\n\nSome changes were also needed to run_process to pass the run User\nin. A hack around the keystone uwsgi launcher was done at the same\ntime to remove a run_process feature that only keystone uwsgi uses.\n\nChange-Id: I836bf27c4cfdc449628aa7641fb96a5489d5d4e7\n"
    },
    {
      "commit": "d18d7c86581b419541b291990173f5fb33a45445",
      "tree": "3d5a51926ae80c0bd1bc8518d4759c7460f0f846",
      "parents": [
        "63666a20796407d6d3ebb2fe98d9d4e21ed99b42"
      ],
      "author": {
        "name": "kesper",
        "email": "paresh.h.sao@gmail.com",
        "time": "Thu Mar 23 05:52:33 2017 +0000"
      },
      "committer": {
        "name": "kesper",
        "email": "paresh.h.sao@gmail.com",
        "time": "Thu Mar 23 06:32:57 2017 +0000"
      },
      "message": "Change for the \u0027running_in_container\u0027 check\n\nThis commit change check of \u0027running_in_container\u0027\nmethod so that other services ironic, nova and neutron\nwill not break.\n\nChange-Id: I42eb587cfaebf37944cb10e459b8b8f7b4b4e4ba\n"
    },
    {
      "commit": "4ae92b846b45ac9ef02e9d19b5d9ddcb4ac05bf3",
      "tree": "910cdd1903f4e215ef60ed45cfa52b58e1f0c94e",
      "parents": [
        "27b1b21f016ae784e1db7309a45630c98f68eb63"
      ],
      "author": {
        "name": "Julian Edwards",
        "email": "bigjools@gmail.com",
        "time": "Thu Mar 16 09:01:39 2017 +1000"
      },
      "committer": {
        "name": "Julian Edwards",
        "email": "bigjools@gmail.com",
        "time": "Sat Mar 18 11:45:16 2017 +1000"
      },
      "message": "Make running_in_container work in more containers\n\nInstead of grepping for \u0027lxc\u0027 in /proc/1/cgroup, use systemd\u0027s\nfeatures. This now at least also works in LXD containers.\n\nChange-Id: I35e807c26f0b1fbba83ddbe04cfb4901a7a95cbe\n"
    },
    {
      "commit": "6523d6e09789076d0a430bf7b608511fcb1c406a",
      "tree": "d96213973217dd7ff0611091f6facdced64a31ce",
      "parents": [
        "73a3e2decd2e7d9fd652fb40c4e697794d9abd05",
        "afef8bf097356d7bb37c57d0daa44653c7905c17"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Mar 08 13:31:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Mar 08 13:31:57 2017 +0000"
      },
      "message": "Merge \"Make declared variables global\""
    },
    {
      "commit": "afef8bf097356d7bb37c57d0daa44653c7905c17",
      "tree": "0aa5c440428469fa0160285cab3ca6e5573135b2",
      "parents": [
        "6f23555c959ce2a121d57c27a7460815808ac2b6"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Mar 06 14:07:23 2017 -0500"
      },
      "committer": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Tue Mar 07 22:07:29 2017 -0800"
      },
      "message": "Make declared variables global\n\nWhen variables use the \u0027declare\u0027 directive, it is by default a local\nvariable. While other variables have global scope.\n\nFor example:\n   declare -A AN_ARRAY   # local in scope\n   foo\u003d1                 # global in scope\n\nThis causes errors to occur as some of the variables will be local only\nand others will be global.\n\nUpdate the code, as appropriate, so that variables using the \u0027declare\u0027\ndirective also include the \u0027-g\u0027 flag to have them also be global. Not\nevery instance of a declared variable has been updated.\n\nCloses-Bug: #1669509\nCo-Authored-By: John L. Villalovos \u003cjohn.l.villalovos@intel.com\u003e\nChange-Id: I2180b68fe861ad19c6d4ec0df0f9f8a528347862\n"
    },
    {
      "commit": "0bf75a471ecce8c05718644e7e070b4d5a8657d6",
      "tree": "d085135ccb42248ec62676940125e9eaeaa5fe17",
      "parents": [
        "bab8516a8503445af5582bc63493cb37098f57fb"
      ],
      "author": {
        "name": "Denis Buliga",
        "email": "dbuliga@cloudbasesolutions.com",
        "time": "Mon Feb 06 16:56:46 2017 +0200"
      },
      "committer": {
        "name": "Denis Buliga",
        "email": "dbuliga@cloudbasesolutions.com",
        "time": "Mon Feb 27 10:31:58 2017 +0200"
      },
      "message": "Skips enabling kernel bridge firewall in container\n\nCalling enable_kernel_bridge_firewall inside a\ncontainer, devstack will crash because it tries to\nload a kernel module by calling \u0027sudo modprobe\u0027 on\nnet.bridge.\n\nChange-Id: Id4718c065d5a8c507d49f38e19c2796a64221aa4\nCloses-Bug: #1662194\n"
    },
    {
      "commit": "9751be66fa45681d069af200632515c3693833d0",
      "tree": "1cfcac35fb216b9200c5c42080fa6752e136f70e",
      "parents": [
        "b6753cea8cd0e07d982048d2f856c6168fc74a92"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 05 12:08:57 2016 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Jan 20 10:48:29 2017 -0500"
      },
      "message": "unify logging setup on all services\n\nThis provides a single setup_logging function which builds consistent\ncolorization if the config supports it, otherwise builds the identity\nstrings that we need to actually keep track of requests.\n\nChange-Id: Iffe30326a5b974ad141aed6288f61e0d6fd18ca9\n"
    },
    {
      "commit": "b6753cea8cd0e07d982048d2f856c6168fc74a92",
      "tree": "75df66abe710f6267911628fd1e380169ac84fd1",
      "parents": [
        "df09c433867a9ce204d1b14807cb5510c0bd0385"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Tue Apr 05 11:52:44 2016 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Jan 20 10:48:20 2017 -0500"
      },
      "message": "simplify colorized logging setup\n\nThis makes setup_colorized_logging be a thing which takes a single\nparameter and doesn\u0027t let projects do things differently. It also\nchanges the order of values from user / project to project / user to\nrepresent the hierachy more clearly.\n\nChange-Id: I8c0ba7da54be588e3e068734feb4f78ed7c5a14a\n"
    },
    {
      "commit": "3f771b7bcb04a22c056f87e9e9bae76209fd3555",
      "tree": "e137a6cd06d0a7bc1522e8482a2318d5cb15ce5a",
      "parents": [
        "72af0d1cab71a03790688a4b7d9274440fcc3275"
      ],
      "author": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Sat Dec 17 04:12:24 2016 +0000"
      },
      "committer": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Sat Dec 17 04:14:42 2016 +0000"
      },
      "message": "iptables: don\u0027t enable arptables firewall\n\nNeutron doesn\u0027t use any arptables based firewall rules. This should\nsomewhat optimize kernel packet processing performance.\n\nI think the setting came from:\nhttp://wiki.libvirt.org/page/Net.bridge.bridge-nf-call_and_sysctl.conf\n\nbut does not apply to the way we use iptables.\n\nChange-Id: I41796c76172f5243e4f9c4902363abb1f19d0d12\nCloses-Bug: #1651765\n"
    },
    {
      "commit": "b3a210f643989603d192b32a40b2001664f8ed73",
      "tree": "4b3273d56906a1c0514dd714e802a7871d156ddf",
      "parents": [
        "ced511c593c68764d007f8b559099d353bae6f45"
      ],
      "author": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Thu Sep 29 13:26:30 2016 +0000"
      },
      "committer": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Thu Sep 29 04:26:56 2016 +0000"
      },
      "message": "Enable bridge firewalling if iptables are used\n\nWith the plan [1] to stop enabling it by Neutron iptables firewall\ndriver itself, deployment tools should catch up and enable the firewall\nthemselves.\n\nThis is needed for distributions that decided to disable the kernel\nfirewall by default (upstream kernel has it enabled). This is also\nneeded for distributions that ship newer kernels but don\u0027t load the\nbr_netfilter module before starting nova-network or Neutron iptables\nfirewall driver. In the latter case, firewall may not work, depending on\nthe order of operations executed by the driver.\n\nTo isolate devstack setups from the difference in distribution\nkernel configuration and version, the following steps are done:\n\n- we load bridge kernel module, and br_netfilter if present, to get\n  access to sysctl knobs controlling the firewall;\n- once knobs are available, we unconditionally set them to 1, to make\n  sure the firewall is in effect.\n\nMore details at:\nhttp://wiki.libvirt.org/page/Net.bridge.bridge-nf-call_and_sysctl.conf\n\n[1] I9137ea017624ac92a05f73863b77f9ee4681bbe7\n\nChange-Id: Id6bfd9595f0772a63d1096ef83ebbb6cd630fafd\nRelated-Bug: #1622914\n"
    },
    {
      "commit": "7b5c7dce53ab9e9778d1d72fcbbed565bfce65bd",
      "tree": "2321e95f7fc673cf3b14972779debf10b0853f78",
      "parents": [
        "72ed1a171ca94e0076ce99e3af63b14d88349833"
      ],
      "author": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Fri Jul 15 20:17:13 2016 +0200"
      },
      "committer": {
        "name": "Ihar Hrachyshka",
        "email": "ihrachys@redhat.com",
        "time": "Sun Jul 17 00:14:43 2016 +0200"
      },
      "message": "Introduce PUBLIC_BRIDGE_MTU variable to set br-ex MTU\n\nThis variable can be used to accommodate for underlying infrastructure\nthat does not provide full 1500-sized traffic, or maybe instead gives\naccess to Jumbo frames.\n\nChange-Id: I38a80bac18673a30842a7b997d0669fed5aff976\nRelated-Bug: #1603268\n"
    },
    {
      "commit": "06ba4fb98bc54f5445afb457fe22d1f88bcaadf6",
      "tree": "2b7ec6e851862f0de578923a409bf1645f33f297",
      "parents": [
        "fb501342729d3416fe7e77f335e35d807f17765b",
        "d565d62efe9a4476367be58551f6412e8e85688a"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jul 11 23:38:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jul 11 23:38:55 2016 +0000"
      },
      "message": "Merge \"ploop: specify hypervisor_type\u003dvz property for ploop images\""
    },
    {
      "commit": "fb501342729d3416fe7e77f335e35d807f17765b",
      "tree": "21defd30773124cf6a43c421d9e2d7d4ffb4fb57",
      "parents": [
        "2528d94d16d4ad7fb4e5056432af0b17ffd8dea8",
        "a9cc38a1986a7c5f78f2d1e331fcc6ac8bd1023c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Jul 11 23:35:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Jul 11 23:35:30 2016 +0000"
      },
      "message": "Merge \"Modify the image property for aarch64\""
    },
    {
      "commit": "d565d62efe9a4476367be58551f6412e8e85688a",
      "tree": "4c60e474f5811453525b38f5329c52984d9092ec",
      "parents": [
        "68747349359822780e00833bca124558d835b05b"
      ],
      "author": {
        "name": "Maxim Nestratov",
        "email": "mnestratov@virtuozzo.com",
        "time": "Mon Jul 11 22:33:39 2016 +0300"
      },
      "committer": {
        "name": "Maxim Nestratov",
        "email": "mnestratov@virtuozzo.com",
        "time": "Mon Jul 11 22:37:13 2016 +0300"
      },
      "message": "ploop: specify hypervisor_type\u003dvz property for ploop images\n\nThis is necessary to make it possible to filter out compute nodes,\nwhich don\u0027t support such type of images.\n\nChange-Id: I347953876e2057e6f3dca71c2f5e8b638b85aaf8\n"
    },
    {
      "commit": "a9cc38a1986a7c5f78f2d1e331fcc6ac8bd1023c",
      "tree": "c687cf32272fcbc481f4cc58a2d3d6d3b43a6201",
      "parents": [
        "01cbe7c1438d8c7a262c1ac771531c24d08ea54f"
      ],
      "author": {
        "name": "Kevin Zhao",
        "email": "kevin.zhao@linaro.org",
        "time": "Fri Jun 24 04:30:12 2016 -0400"
      },
      "committer": {
        "name": "Kevin Zhao",
        "email": "kevin.zhao@linaro.org",
        "time": "Fri Jun 24 04:48:33 2016 -0400"
      },
      "message": "Modify the image property for aarch64\n\nIn Aarch64, the default cdrom bus is scsi, and the default scsi\ncontroller is virtio-scsi. The cdrom with virtio bus will not be\nrecognized by the instance.\n\nChange-Id: Ib8cec79f9e9083239092fa7348793ee3b64a9c94\nSigned-off-by: Kevin Zhao \u003ckevin.zhao@linaro.org\u003e\n"
    },
    {
      "commit": "21e3d1e55b3140e8b14105df05c1e5253a3d04ec",
      "tree": "9cc3365bbdf18e85e3c7412aa4821872da5f8ef1",
      "parents": [
        "dbc6a3736ddd1ed7f453898c26c1f7c550f8f8c1"
      ],
      "author": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Fri May 06 12:35:22 2016 -0400"
      },
      "committer": {
        "name": "Rob Crittenden",
        "email": "rcritten@redhat.com",
        "time": "Fri Jun 17 15:29:54 2016 -0400"
      },
      "message": "Make wait_for_service more robust by checking HTTP response\n\nwait_for_service just checked to see if the remote service\nwas started, not that it was returning data. This caused\nproblems when the service was behind a proxy because the\nproxy would respond quickly but the service may not have\nfully started.\n\nWait for a non-503 HTTP response code and non-7 exit code\n(connection error) from curl\n\nReturn an error if a successful connection cannot be made.\n\nChange-Id: I059a12b1b920f703f28aca0e2f352714118dee97\n"
    },
    {
      "commit": "09604349f89f59ee2ac07b4daa93bd1ae52d1b79",
      "tree": "e14426a12e8797309858873d524861533c6609c6",
      "parents": [
        "feb828b7aadd65b6bd584a1510a1b80dbe49a332"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hpe.com",
        "time": "Thu Jun 02 10:29:43 2016 -0400"
      },
      "committer": {
        "name": "Brian Haley",
        "email": "brian.haley@hpe.com",
        "time": "Thu Jun 02 10:33:54 2016 -0400"
      },
      "message": "Change ovs_base neutron plugin to use vercmp\n\nThis plugin was using a deprecated function, vercmp_numbers(),\nthat wasn\u0027t actually working properly because the call to\n\u0027deprecated\u0027 at the beginning was causing garbage to be\nreturned to the caller.  For example, this was always in\nstack.sh.log when using OVS:\n\n.../lib/neutron_plugins/ovs_base: line 57: [: too many arguments\n\nUpdate to use vercmp() like all other users in devstack, and\nremove all the old code.\n\nChange-Id: I352362cf59e492fa9f7725190f0243f2436ac347\n"
    },
    {
      "commit": "1441242fccd836ff91d33e1022f276740e94875b",
      "tree": "39e353cf4673458dc2b9982422e6f9d1be7840ea",
      "parents": [
        "84f83bf5ea05e60f962498e200a19ec360958538",
        "3feceb0e4a2e9527be0d5e51ff317851417654d4"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu May 19 01:07:39 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu May 19 01:07:39 2016 +0000"
      },
      "message": "Merge \"Support decompressing bz2 image\""
    },
    {
      "commit": "37f6ea619e64641f80aa59029a71b91bccf2b00a",
      "tree": "a0f48059113d71cad131a2bcc3e49e71e2abc29b",
      "parents": [
        "2e9c633683a8a05f78d4ce9dd582dbb61a558205",
        "daa7a41e219f435006f412e4ff45d93cf4c4827d"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue May 10 21:42:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue May 10 21:42:54 2016 +0000"
      },
      "message": "Merge \"Export the \u0027short_source\u0027 function \u0026 don\u0027t keep PS4 in sudo\""
    },
    {
      "commit": "3feceb0e4a2e9527be0d5e51ff317851417654d4",
      "tree": "eba6449c444d5ba7e3d69d2f4fce7cbccfab350d",
      "parents": [
        "251b870e859e1a03b57c8fe24c7692a5e2a10fde"
      ],
      "author": {
        "name": "Hongbin Lu",
        "email": "hongbin.lu@huawei.com",
        "time": "Sun Apr 17 11:11:58 2016 -0400"
      },
      "committer": {
        "name": "Hongbin Lu",
        "email": "hongbin.lu@huawei.com",
        "time": "Fri May 06 21:07:18 2016 -0400"
      },
      "message": "Support decompressing bz2 image\n\nCoreOS cloud image is compressed with bz2 extension [1]. In such\ncase, we need to decompress the image before uploading it to glance.\n\n[1] https://coreos.com/os/docs/latest/booting-on-openstack.html\n\nChange-Id: I705d0813d180aefaa2507c00d1ae40af07d12fcf\n"
    },
    {
      "commit": "daa7a41e219f435006f412e4ff45d93cf4c4827d",
      "tree": "1ddf73d9563961c1a095a7e7aa2f67168cd9bcc1",
      "parents": [
        "8d27280f3e845841e78acf659a7e8b605122517e"
      ],
      "author": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Thu May 05 12:50:52 2016 -0700"
      },
      "committer": {
        "name": "John L. Villalovos",
        "email": "john.l.villalovos@intel.com",
        "time": "Fri May 06 10:50:58 2016 -0700"
      },
      "message": "Export the \u0027short_source\u0027 function \u0026 don\u0027t keep PS4 in sudo\n\nExport the \u0027short_source\u0027 function so that it will be present in the\nenvironment for child shell scripts. Do this because we are passing PS4\nto the child shell scripts and it is using \u0027short_source\u0027\n\nDon\u0027t do an \u0027env_keep\u0027 in the sudoers file for PS4, since it is\ndifficult to also pass along the \u0027short_source\u0027 function.\n\nChange-Id: I9781010d6eb336d02939c7fd47f18bedeae5ccc6\nCloses-Bug: #1563443\n"
    },
    {
      "commit": "878d7d8f13592bf254cb5f647bd3db87c191d2d3",
      "tree": "83ca58bfba21ab351b296053d096a218ed29bc9a",
      "parents": [
        "96ffde28b6e2f55f95997464aec47ae2c6cf91d3"
      ],
      "author": {
        "name": "Victor Ryzhenkin",
        "email": "vryzhenkin@mirantis.com",
        "time": "Wed Apr 27 15:15:52 2016 +0300"
      },
      "committer": {
        "name": "Sean M. Collins",
        "email": "sean@coreitpro.com",
        "time": "Thu Apr 28 15:13:58 2016 +0000"
      },
      "message": "Adjust region name for images, networks and volumes during deployment\n\nIn a multiregion installation of devstack, conflicts occur in the\ncreation of images, networks, or volume types, when the region is not\nset.\n\nThis patch adjusts commands to include the region, and\nalso adjusts the region_name in the nova configuration section of\nneutron.conf to include the region.\n\nChange-Id: Ifedff6a124fa49d57cc7b2f35916d8d96f5e5f7a\n"
    },
    {
      "commit": "646085d701049004f9b2bcdc38610f3e87579cda",
      "tree": "bd31eefb0de2422bcd17a064a7b0db5f769b123e",
      "parents": [
        "0a2a7ae8471575d887a19b9bf8b7375ea1fd7f45"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Mon Mar 21 17:00:51 2016 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Mar 23 07:37:44 2016 -0400"
      },
      "message": "Add colorful PS4\n\nPS4 can include functions, so when running in the LOG_COLORS\u003dTrue mode\nprovide a grey function line so that it\u0027s easier to visually\ndistinguish the content from the location.\n\nAlso make it so the main prompt chunks off all the common path, which\nmeans we can printf to 40 characters and have a pretty reasonable and\nreadable PS4.\n\nChange-Id: I4a10a49db97d413349bcfceeb8c4164936fbcc40\n"
    },
    {
      "commit": "c3c91c4267ae5bc70a05a56b8cfc362638f266f1",
      "tree": "172b76c7a784d996e83093d51ec4e7c0e8344730",
      "parents": [
        "ced2e414c0c3feedb00385649a70d6e991034207",
        "7ae97298c55d9ba21d2dc037cc7d9fae54afa183"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Feb 24 20:04:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Feb 24 20:04:55 2016 +0000"
      },
      "message": "Merge \"Minor fixes for bashate trunk\""
    },
    {
      "commit": "7ae97298c55d9ba21d2dc037cc7d9fae54afa183",
      "tree": "f6dfe9c2e05a9f2b3bb9f8b3613ed91341f0bc2f",
      "parents": [
        "f130b283d9603477c0ffa7705eec39d73798b4d2"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Feb 16 14:50:53 2016 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Feb 16 14:50:53 2016 +1100"
      },
      "message": "Minor fixes for bashate trunk\n\nWe don\u0027t have a new bashate release yet, but this fixes some minor\nissues when used with bashate trunk.\n\nThe only two things triggered are stricter checking of assignment in\nlocal declartions (catches quotes) and one instance of evaluating\narithmetic result in tools/xen/functions.\n\nTherefore, hopefully, this change has no effect!\n\nChange-Id: I3fd5d55236e90c2f2c25243af87adaf0c1b763e2\n"
    },
    {
      "commit": "72f530fd7aa9b2029ad141ecfe9c2d62f87f72f3",
      "tree": "884603385504ce116b6f4a093629933d1b8b148d",
      "parents": [
        "905a37aaae5a47e5a7328a4eaf0a0c97ca7e4c83"
      ],
      "author": {
        "name": "Rafael Folco",
        "email": "rfolco@br.ibm.com",
        "time": "Tue Feb 09 07:08:38 2016 -0600"
      },
      "committer": {
        "name": "Rafael Folco",
        "email": "rfolco@br.ibm.com",
        "time": "Thu Feb 11 05:47:41 2016 -0600"
      },
      "message": "Set default properties for Power: virtual console and scsi driver\n\nThis patch enables the virtual console for Power systems /dev/hvc0\nand sets scsi bus and virtio-scsi model as default.\nThe virtual console hvc0 enables full console including dmesg.\nHigh performance virtio-scsi driver keeps the efficient design of\nvirtio-blk with effective SCSI passthrough.\n\nChange-Id: I0b5cd4a15d30f06fc7993555d91d6907bd1acbd7\n"
    },
    {
      "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": "2ca8af45a78226f29c3251cbef6449a0a51a4c1f",
      "tree": "9db1b9497e9b199ec86b1f9ca74282020e779004",
      "parents": [
        "63b7d7bcae863a22feab34079d2d4b5fc1c845f3"
      ],
      "author": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Tue Dec 08 15:36:13 2015 +0900"
      },
      "committer": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Thu Dec 17 20:28:54 2015 +0900"
      },
      "message": "Add 5 time measurement points\n\nrun_process           process starting time\ntest_with_retry       process starting time (for neutron legacy)\nrestart_apache_server Apache HTTPD restart time\nwait_for_service      HTTP server waiting time\ngit_timed             git command execution time\n\nexample\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nDevStack Components Timed\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nrun_process - 52 secs\ntest_with_retry - 3 secs\napt-get-update - 8 secs\npip_install - 76 secs\nrestart_apache_server - 9 secs\nwait_for_service - 11 secs\ngit_timed - 127 secs\napt-get - 15 secs\n\nChange-Id: I66140726617450cd9fe9b702092cacf053a20065\n"
    },
    {
      "commit": "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": "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": "33c9a67ead4b61a9eb423f71ca4f8e062c3b5ebd",
      "tree": "98caf8ff2fc95e33520d86aaca5ade57bd202bcb",
      "parents": [
        "1987cfb1bea276202926d5de624754ed6f5c8e7f"
      ],
      "author": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Thu Nov 12 19:50:00 2015 +0900"
      },
      "committer": {
        "name": "Atsushi SAKAI",
        "email": "sakaia@jp.fujitsu.com",
        "time": "Thu Nov 12 19:53:06 2015 +0900"
      },
      "message": "Fix typos on three comments and one message\n\nFixes typos on three comments and one message\nin functions/functions-common\n\nChange-Id: I2c926ca29b284afd4534b92860fa46f248676a83\n"
    },
    {
      "commit": "d111182f218094dfdd88bda63af024c0c6e5d8cd",
      "tree": "6efbaec54afc4965767c187b5743c25b8346f438",
      "parents": [
        "5a98d4f7d0a1cf00f2aca9e0f3f6cdc285c1ee79",
        "ada886dd43ccc07f48d3a82d8d3d840fe5096c03"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Oct 14 02:43:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 14 02:43:52 2015 +0000"
      },
      "message": "Merge \"Don\u0027t mix declaration and set of locals\""
    },
    {
      "commit": "72ad942796adb03c96154cd1df4f97ad775e6092",
      "tree": "c453685fb6f1e1a857609c6229ab21592c2b582e",
      "parents": [
        "1de9e330de9fd509fcdbe04c4722951b3acf199c"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Oct 07 11:51:40 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Oct 07 15:15:16 2015 -0400"
      },
      "message": "use deprecated function instead of modifying global\n\nIt\u0027s safer to run this through a common function to let us make\nchanges later.\n\nChange-Id: Ic661824027577e1946726c1843a29ac8325915bf\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": "5aeea6ae3e2434d7b08bce2da672061cdba08ab0",
      "tree": "4a5af1dc6f82a74e81f186350190e279515efe45",
      "parents": [
        "c4c08686f81384c90386228a45583667d877b6ef"
      ],
      "author": {
        "name": "Peter Stachowski",
        "email": "peter@tesora.com",
        "time": "Tue Sep 22 19:38:02 2015 +0000"
      },
      "committer": {
        "name": "Peter Stachowski",
        "email": "peter@tesora.com",
        "time": "Tue Sep 22 19:40:40 2015 +0000"
      },
      "message": "Removed unused TOKEN from upload_image\n\nChangeset https://review.openstack.org/#/c/225426/ changed how images\nwere uploaded into Glance, however the (now) unused TOKEN variable\nand function argument to upload_image remained.\n\nThese have been removed.\n\nChange-Id: I9910c469f72d52e56111048cc24ea3c992c1d480\n"
    },
    {
      "commit": "31c313d3a35e1b222fdb3aa72993a27c288d10bb",
      "tree": "03ebcf103b882116d767b0229217fc1e460ea67d",
      "parents": [
        "7224eecb98883a91e9da445baefc23a194e8fd68"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Sat Sep 19 11:35:22 2015 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Mon Sep 21 15:45:33 2015 -0500"
      },
      "message": "Use normal API not token/endpoint for image uploads\n\nThere is no reason to use keystone token bootstrapping for image\nuploads. Glance is a service, and images can be uploaded to it normally\nwithout special shenanigans.\n\nDepends-On: If7b81c4a6746c8a1eb0302c96e045fb0f457d67b\nChange-Id: I7092fb10cbe243e091789134263fab081af0c7f4\n"
    },
    {
      "commit": "4d223251e8b12a1118d8f089615e091be1a90883",
      "tree": "9f42ea03b77f707c5633066156a666ba9be471e7",
      "parents": [
        "d103f47ffac9282a3abae535e50077c5755e0079",
        "4ffb4541452a95ae964c562c89e31c49e39dbaa7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Aug 17 19:38:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Aug 17 19:38:05 2015 +0000"
      },
      "message": "Merge \"Add header guard to functions/functions-common\""
    },
    {
      "commit": "54ee8a82a837eb2b28746c77e0259ec326ab15cc",
      "tree": "f56879db0d48df7f3a15e3cd970c64528f141d4b",
      "parents": [
        "32a3e322b428d83fa5922c1b9e6adce047064bd6"
      ],
      "author": {
        "name": "Maxim Nestratov",
        "email": "mnestratov@virtuozzo.com",
        "time": "Wed Jul 15 11:47:11 2015 +0300"
      },
      "committer": {
        "name": "Maxim Nestratov",
        "email": "mnestratov@virtuozzo.com",
        "time": "Wed Jul 15 11:53:12 2015 +0300"
      },
      "message": "Make it possible to upload ploop images\n\nAdd support of ploop images (*.hds extension) for both exe and hvm types.\nIn devstack we assume that images have \u0027-exe\u0027 and \u0027-hvm\u0027 suffixes in\ntheir names correspondently.\n\nChange-Id: I1c074876c530be0535a6e02e764d67a4ebcbbbe5\n"
    },
    {
      "commit": "4ffb4541452a95ae964c562c89e31c49e39dbaa7",
      "tree": "eec7961348f5512ea3b610e864a03d3d7d1ce02c",
      "parents": [
        "04c0f0be2643ef95380a7dcf4b510d86ff11cd58"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Jun 30 11:00:32 2015 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Jun 30 13:48:53 2015 +1000"
      },
      "message": "Add header guard to functions/functions-common\n\nTo avoid sourcing this twice and getting globals mixed up,\nparticularly when using multiple plugins, add a \"header guard\" that\nensures we only source it once.\n\nIn general I don\u0027t think functions/functions-common have been written\nor considered to be idempotent.  I don\u0027t think going down that path is\ngoing to be a long-term solution as it\u0027s easy to break.\n\nChange-Id: Idca49eb996d2b7ff3779ec27ed672a2da7852590\nCloses-Bug: #1469178\n"
    },
    {
      "commit": "9aad1b99fd30eba94e8d2173834a12a2a39f8a9f",
      "tree": "482be24717b1e2a611e541a5ddc14eeb63d6343f",
      "parents": [
        "c8305cd124e9c663493f2002d94b4749074ef132",
        "af9bf8663b43a2cc80f2c3adb09b8aa3641f99ab"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Apr 20 13:39:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Apr 20 13:39:33 2015 +0000"
      },
      "message": "Merge \"refactor ping_check\""
    },
    {
      "commit": "af9bf8663b43a2cc80f2c3adb09b8aa3641f99ab",
      "tree": "fe6ba625393f321dbed1e9631915082ebc8a0432",
      "parents": [
        "1235581559087974580c0e5f6e3ade82e9030a70"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Thu Apr 16 08:58:32 2015 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Apr 17 07:39:28 2015 -0400"
      },
      "message": "refactor ping_check\n\nEncapsulate all the neutron specific things you have to do ping a\nneutron guest into a separate script. Refactor the main ping_check so\nall logic is contained within it.\n\nChange-Id: Ic79d8e3a2473b978551a5635a11dba07e1020bb2\n"
    },
    {
      "commit": "fcc3f6ee986c1166c001774052c05b5d974593ea",
      "tree": "11c0c603d5cf890dfda5c0e417e631a52401fb22",
      "parents": [
        "9860876f5dbb07826b680143a4e111ad580053fe"
      ],
      "author": {
        "name": "Clark Laughlin",
        "email": "clark.laughlin@linaro.org",
        "time": "Tue Apr 07 16:31:47 2015 +0000"
      },
      "committer": {
        "name": "Andrew McDermott",
        "email": "andrew.mcdermott@linaro.org",
        "time": "Thu Apr 09 08:55:56 2015 +0000"
      },
      "message": "Add support for arm64 images\n\nThis patch enables proper support for arm64 images by disabling VNC support\nand adding several properties to the image in glance that are necessary to\nboot correctly:\n  hw_cdrom_bus\u003dvirtio\n  hw_machine_type\u003dvirt\n  os_command_line\u003d\u0027console\u003dttyAMA0\u0027\n\nChange-Id: I68c9a5e0e083af2f92875c3bdf70df750f6e4d8f\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": "dc97cb71e85fc807d2cce6f054c785922d322eb9",
      "tree": "86affcfbc7054c209c2ab0a4c3f7955d5e1bf16f",
      "parents": [
        "9720239618189c13734aa32aabee9252707f2db9"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Mar 28 08:20:50 2015 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Mar 28 14:35:12 2015 -0500"
      },
      "message": "Mostly docs cleanups\n\nFix documentation build errors and RST formatting\n\nChange-Id: Id93153400c5b069dd9d772381558c7085f64c207\n"
    },
    {
      "commit": "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": "b5ab6468c9784d5f5f21e808034f462d5c9d91b2",
      "tree": "8338c7a58eb0a5f653e42c57ec17a8fb2d3c8931",
      "parents": [
        "b5d1de0a93924074cc0368f0fe94da78ebcfa01c"
      ],
      "author": {
        "name": "sridhargaddam",
        "email": "sridhar.gaddam@enovance.com",
        "time": "Tue Feb 24 07:23:24 2015 +0000"
      },
      "committer": {
        "name": "sridhargaddam",
        "email": "sridhar.gaddam@enovance.com",
        "time": "Mon Mar 02 07:42:36 2015 +0000"
      },
      "message": "Fix curl issue when SERVICE_HOST is defined to IPv6 address\n\nWhen SERVICE_HOST is defined to literal IPv6 address\n(i.e., [fdf8:f53b:82e4::179]) we will have to include\n--globoff option for curl to be able to reach the various\nopenstack services. Using globoff works for both IPv6 and\nIPv4 urls, so its safe to include this option for all curl\nstatements in devstack.\n\nCloses-Bug: #1424943\nChange-Id: I2afc16f2f94d7d7069b0ba61bc8348c03413e4e7\n"
    },
    {
      "commit": "490430dbe3b7d9979b4623f2c327bb0a74436401",
      "tree": "527289f426c49bb51234a1e0621a0afe1ffac20e",
      "parents": [
        "a1b82cc1b5a7172c3fdf17d2c3f0725660911ad7"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 30 14:38:35 2015 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 30 14:59:48 2015 -0600"
      },
      "message": "Split functions-common: python functions\n\nMove Python-related functions into inc/python\n\nShould be transparent to all callers as it is sourced from functions-common\n\nChange-Id: I88043830cef9211b4e0baa91bfcc7a92125afa9f\n"
    },
    {
      "commit": "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": "057d6ae2255f8895baada8d00767ffa71c8615ac",
      "tree": "5fa1a6c1c6900b9ceb9ec9d79bc43f08b0f7e934",
      "parents": [
        "cc6dbee0a6aef468b30f33c2c59b7409915a1409"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Tue Jan 13 14:01:26 2015 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Tue Jan 13 14:01:26 2015 +0100"
      },
      "message": "wget less verbose\n\nwget is too verbose in devstack logs [1] on image download.\n\nChanging the progress bar style to giga, in order\nto be less verbose.\n\nhttp://logs.openstack.org/73/146573/2/check/\ncheck-tempest-dsvm-full-juno/41ba988/logs/devstacklog.txt.gz#_2015-01-13_11_34_15_330\n\nChange-Id: Ic5304893f4c97c50e7a2f29ad5cd77dba3d5a9dd\n"
    },
    {
      "commit": "d09a1db5a449fc758bf840858f6fecba173705b3",
      "tree": "19f949a600c09109c306dd86ad830c474693bb58",
      "parents": [
        "3fe578d41d52577e6af4dc948287dfbc2eb06f46",
        "e263c82e48a431e502bd6baceb6dfcfdc1750cbb"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Dec 10 20:32:15 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Dec 10 20:32:15 2014 +0000"
      },
      "message": "Merge \"add shebang lines to all lib files\""
    },
    {
      "commit": "e263c82e48a431e502bd6baceb6dfcfdc1750cbb",
      "tree": "5ca592e668dedb4debc6c7170f3abf37cc4bc0c6",
      "parents": [
        "2f8e08b5728f4272b415b1c0aab8ff62eae29b06"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Dec 05 14:25:28 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Dec 10 11:28:05 2014 -0500"
      },
      "message": "add shebang lines to all lib files\n\nWith gerrit 2.8, and the new change screen, this will trigger syntax\nhighlighting in gerrit. Thus making reviewing code a lot nicer.\n\nChange-Id: Id238748417ffab53e02d59413dba66f61e724383\n"
    },
    {
      "commit": "88cde0b3da7102cd28b3b44fbf6112b17303b27d",
      "tree": "eed8071cad05f48a52b0e8c85f43b7000d4722b7",
      "parents": [
        "dead777ea380df7bc1969e9807f90159f512259e"
      ],
      "author": {
        "name": "Sabari Kumar Murugesan",
        "email": "smurugesan@vmware.com",
        "time": "Thu Dec 04 17:48:26 2014 -0800"
      },
      "committer": {
        "name": "Sabari Kumar Murugesan",
        "email": "smurugesan@vmware.com",
        "time": "Thu Dec 04 20:33:41 2014 -0800"
      },
      "message": "VMware: add default image metadata for hw_vif_model\n\nDuring glance image-create we are currently setting a null value\nfor the hw_vif_model, if we are unable to introspect from the vmdk\nfile.\n\nThis patch adds a default value if not found.\n\nChange-Id: I6d0f551b18f03e2a799ae14c3347652a285693f0\n"
    },
    {
      "commit": "e5dbec252aac0ca665696a5b69267f13882478c2",
      "tree": "7a7fc675e9c6ef6cd725b7136ab68836d438ef7c",
      "parents": [
        "f33e76bf9bd9a3bc39e8b3b99257a4ae98a10d25",
        "3324f19f5aeb3c8933447752dbc2c1b8c7f9b2de"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Oct 08 22:14:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Oct 08 22:14:51 2014 +0000"
      },
      "message": "Merge \"Fix docs build errors\""
    },
    {
      "commit": "3324f19f5aeb3c8933447752dbc2c1b8c7f9b2de",
      "tree": "84248dfdde0ce32a415c565db32dcb04776ea51e",
      "parents": [
        "7672ad1dbc00ec5ff80f3aa670404e413e86e506"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Sep 18 09:26:39 2014 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Oct 02 15:30:50 2014 -0500"
      },
      "message": "Fix docs build errors\n\nFix shocco errors during docs generation\n\nCloses-Bug: 1362691\nChange-Id: I2b7fb008c89f0b4e7280b2d0a054320765e83e47\n"
    },
    {
      "commit": "944b28280b86bba7592b1c7a2032dbd0eaa39014",
      "tree": "536f4a12c918cdef4077be75d032270244966ae3",
      "parents": [
        "c53e83601a4ffc572ae99b3a4f330a940066cc1d"
      ],
      "author": {
        "name": "Joe Gordon",
        "email": "joe.gordon0@gmail.com",
        "time": "Wed Oct 01 18:21:08 2014 -0700"
      },
      "committer": {
        "name": "Joe Gordon",
        "email": "joe.gordon0@gmail.com",
        "time": "Wed Oct 01 19:52:23 2014 -0700"
      },
      "message": "Drop workaround for pip \u003c 1.4\n\nNow that we are on pip 1.5.6 lets drop the workaround to make pip 1.4\nwork. As this is a development/testing tool requiring a newer pip\nshouldn\u0027t be an issue. Also stack.sh installs pip by default.\n\nWork around introduced in https://github.com/pypa/pip/issues/709\n\nChange-Id: I0e7aad1d21f4fce4c020ce36685bb56893c66bdc\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": "b4495eb410e3ad348700f127dcf7c0562014c325",
      "tree": "a2af0cc87edd09d37ab764ebc014264c60b79a00",
      "parents": [
        "3d458eb703e52606d8aa8d58757285e61cb47b8b"
      ],
      "author": {
        "name": "Noboru Iwamatsu",
        "email": "n_iwamatsu@jp.fujitsu.com",
        "time": "Wed Jul 02 18:31:31 2014 +0900"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Sep 08 15:59:29 2014 +1000"
      },
      "message": "Use mod_version to clean-up apache version matching\n\nThis change uses mod_version (shipped by default on everything we care\nabout) to set-up version-specific config within apache rather than\nwithin devstack scripts.\n\nClean up the horizon and keystone config file generation to use the\ninternal apache matching.\n\nSince I6478db385fda2fa1c75ced12d3e886b2e1152852 the apache matching in\n\u0027functions\u0027 is actually duplicated.  just leave get_apache_version in\nlib/apache as it is used for config-file name matching in there.\n\nChange-Id: I6478db385fda2fa1c75ced12d3e886b2e1152852\n"
    },
    {
      "commit": "a3ecab6618cb7c9ca8089d8b24ac503ed5a719e7",
      "tree": "bb6a2ff4fdc267dd607b5c4011832bc3ddb84893",
      "parents": [
        "5dd1778909c7c256bdef79cd236fb0d95d8a09dd",
        "8d3ac2df582730717392798ae46b436238d91b70"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Aug 15 00:50:41 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Aug 15 00:50:41 2014 +0000"
      },
      "message": "Merge \"Modify `glance image-create` commands to use openstackclient\""
    },
    {
      "commit": "ca8239449fbdbc3a73f691683be2ec9d4a941ff6",
      "tree": "e4f66d34a6af35adf39f05b03c229b0bba0b3ae4",
      "parents": [
        "d8baf23634fb6654b71f79314a8d60dbd58cece4"
      ],
      "author": {
        "name": "Alessandro Pilotti",
        "email": "apilotti@cloudbasesolutions.com",
        "time": "Thu Aug 07 02:05:26 2014 +0300"
      },
      "committer": {
        "name": "Alessandro Pilotti",
        "email": "apilotti@cloudbasesolutions.com",
        "time": "Thu Aug 07 19:30:34 2014 +0300"
      },
      "message": "Adds support for Hyper-V image formats\n\nAdds support for VHD and VHDX image formats, including gz compression.\n\nChange-Id: I9b143c9883b947397b435a671f13703f78019d23\nCloses-bug: #1353726\n"
    },
    {
      "commit": "8d3ac2df582730717392798ae46b436238d91b70",
      "tree": "4a0db330890963c77e92be75c7877e4c7e2d20b0",
      "parents": [
        "5acf159c72fad931031d9768ae02575240a5ede9"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sat Aug 02 23:47:15 2014 -0400"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sat Aug 02 23:47:15 2014 -0400"
      },
      "message": "Modify `glance image-create` commands to use openstackclient\n\nChange `glance image-create` commands to use `openstack image create`,\nin an effort to unify the CLI.\n\nChange-Id: I96cef118daf931b648c0483525ac7d2287fec2e0\n"
    },
    {
      "commit": "5acf159c72fad931031d9768ae02575240a5ede9",
      "tree": "077cdc05957f449d6c38b2e7c1a8d221da53f5fc",
      "parents": [
        "a0c6d1e954003b8e24b33d88ead8f506c5354204",
        "e9f7667050c7385c734e6d653b2ee63b9c7dc0ed"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Aug 02 21:49:29 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Aug 02 21:49:29 2014 +0000"
      },
      "message": "Merge \"Clean up local variable usage - upload_image()\""
    },
    {
      "commit": "e9f7667050c7385c734e6d653b2ee63b9c7dc0ed",
      "tree": "805e3160ada87a29ffeb74aeea23135e602b8ef6",
      "parents": [
        "d3121f649d672fdaf757655b94ecd68c71b56b8e"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jul 25 11:09:36 2014 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Jul 29 15:40:45 2014 -0500"
      },
      "message": "Clean up local variable usage - upload_image()\n\nCleans up the rather coplex upload_image() function\n\nChange-Id: Ie1ef200b905dd5d17ef887390d620817208f2bf5\n"
    },
    {
      "commit": "36f2f024dbeafdc4cbd7a76ed1c96d28fea61fb4",
      "tree": "e1e3fe650a3a9a8c120aa495ca0a1873106f3dd2",
      "parents": [
        "097183356e60f6375061914e89816c8faafb3a6f"
      ],
      "author": {
        "name": "Sébastien Han",
        "email": "sebastien.han@enovance.com",
        "time": "Mon Jan 06 18:09:26 2014 +0100"
      },
      "committer": {
        "name": "Sébastien Han",
        "email": "sebastien.han@enovance.com",
        "time": "Wed Jul 23 16:13:45 2014 +0200"
      },
      "message": "Implement Ceph backend for Glance / Cinder / Nova\n\nThe new lib installs a full Ceph cluster. It can be managed\nby the service init scripts. Ceph can also be installed in\nstandalone without any other components.\nThis implementation adds the auto-configuration for\nthe following services with Ceph:\n\n* Glance\n* Cinder\n* Cinder backup\n* Nova\n\nTo enable Ceph simply add: ENABLED_SERVICES+\u003d,ceph to your localrc.\nIf you want to play with the Ceph replication, you can use the\nCEPH_REPLICAS option and set a replica. This replica will be used for\nevery pools (Glance, Cinder, Cinder backup and Nova). The size of the\nloopback disk used for Ceph can also be managed thanks to the\nCEPH_LOOPBACK_DISK_SIZE option.\n\nGoing further pools, users and PGs are configurable as well. The\nconvention is \u003cSERVICE_NAME_IN_CAPITAL\u003e_CEPH_\u003cOPTION\u003e where services are\nGLANCE, CINDER, NOVA, CINDER_BAK. Let\u0027s take the example of Cinder:\n\n* CINDER_CEPH_POOL\n* CINDER_CEPH_USER\n* CINDER_CEPH_POOL_PG\n* CINDER_CEPH_POOL_PGP\n\n** Only works on Ubuntu Trusty, Fedora 19/20 or later **\n\nChange-Id: Ifec850ba8e1e5263234ef428669150c76cfdb6ad\nImplements: blueprint implement-ceph-backend\nSigned-off-by: Sébastien Han \u003csebastien.han@enovance.com\u003e\n"
    },
    {
      "commit": "f3939bf07752f19096c10f30684b0efb11b2676e",
      "tree": "a2141ba0ad13e7d87e92142a65abe79d675fefa8",
      "parents": [
        "47e7a1431999e4862e36098ee05d945400b4274d",
        "50e53925e107526915d9bd06b48884c9a574d083"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Jun 19 22:47:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Jun 19 22:47:39 2014 +0000"
      },
      "message": "Merge \"Use correct path when extracting tar.gz image\""
    },
    {
      "commit": "50e53925e107526915d9bd06b48884c9a574d083",
      "tree": "a40872b970ac358c1340af62dbf6ea7e9f76f11f",
      "parents": [
        "c1699c27d11b48b29eaba41ae4c74c5464414c79"
      ],
      "author": {
        "name": "Greg Lucas",
        "email": "glucas@tesora.com",
        "time": "Mon Jun 09 11:42:12 2014 -0400"
      },
      "committer": {
        "name": "Greg Lucas",
        "email": "glucas@tesora.com",
        "time": "Mon Jun 09 12:06:40 2014 -0400"
      },
      "message": "Use correct path when extracting tar.gz image\n\nFix issue with file:/ image urls.\n\nChange-Id: I8c5f5b27b5d6ebe5be84dc58d37752adbd12f89b\nCloses-Bug: 1277609\n"
    },
    {
      "commit": "54e3910f2d2b2dc49719c7c2f1dca1abb6481870",
      "tree": "0d77636ec8e5bbccc287d48d88dba053d5aa7b38",
      "parents": [
        "ea937baee62378b118c09f42c16a44cc5e6a5fdd"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Jun 03 16:05:12 2014 +1000"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Jun 03 17:16:38 2014 +1000"
      },
      "message": "Add basic echo_* functions for grenade\n\nGrenade, and possibly other components, re-use parts of devstack\nlibraries.  This provides basic echo_* functions to avoid missing\ncommands in several libraries.\n\nChange-Id: I972d6208055a8c4ca4c9bfd5383ad3c7159d5cbe\n"
    },
    {
      "commit": "f1a2dbffe8ba369b0a8a125e975864a5d88f3e87",
      "tree": "3e5a48d66024d165326e4ff05d3b40bcd681cdbc",
      "parents": [
        "871b1e47092a6463cb39be48c66bfe3e646920c2"
      ],
      "author": {
        "name": "Bob Ball",
        "email": "bob.ball@citrix.com",
        "time": "Wed Mar 19 11:08:54 2014 +0000"
      },
      "committer": {
        "name": "Bob Ball",
        "email": "bob.ball@citrix.com",
        "time": "Wed Mar 19 15:06:57 2014 +0000"
      },
      "message": "XenAPI: Cirros images must always boot as PV.\n\nThe default for VHD disk-types is PV, which is why booting from a\nserver works.  However, creating a volume from the image needs to\npass this parameter on to the volume.  Note that\nId673158442fde27e8d468ca412c9bd557a886e6b is also required to fix\nbug 1294069\n\nChange-Id: I7ea1d85d6082787ac4551f78300a04bf59074261\nPartial-Bug: 1294069\n"
    },
    {
      "commit": "911cc586ad8f8a7c736516f2a3d9a9ce8571976b",
      "tree": "a0c7e9611453dc3dc89a867f907c011970fa8619",
      "parents": [
        "73a3bec04a039a0329a5f5f17470dfe6415ca65b",
        "0b03e7acb84e14efed3bfc2b30055a8427a40a12"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Mar 17 23:41:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Mar 17 23:41:39 2014 +0000"
      },
      "message": "Merge \"Set correct default disk bus back to virtio on ppc64\""
    },
    {
      "commit": "0b03e7acb84e14efed3bfc2b30055a8427a40a12",
      "tree": "81029538cd3a76ce89369c345aa02e8bdf3bde27",
      "parents": [
        "3e57ac64e75c5a5b55c2fb2d23e5b3d6377121ed"
      ],
      "author": {
        "name": "Rafael Folco",
        "email": "rfolco@br.ibm.com",
        "time": "Fri Mar 14 11:14:57 2014 -0300"
      },
      "committer": {
        "name": "Rafael Folco",
        "email": "rfolco@br.ibm.com",
        "time": "Fri Mar 14 11:20:10 2014 -0300"
      },
      "message": "Set correct default disk bus back to virtio on ppc64\n\nvirtio is supported and should be the default disk bus on Power to\ntake advantage of I/O performance drivers. This aligns with Nova\ndefault bus values on PowerKVM. SCSI is the default for cdrom.\n\nChange-Id: I5de08c90359b3a500c352c09c07b6b082ddb4325\n"
    },
    {
      "commit": "9c6d2840fdb67eb7af34be241bdb2fbebaf67c87",
      "tree": "16cce3ee3bad366e1f736ca984ee0c32e41c7206",
      "parents": [
        "0dfbf9b4b91c0b95fdaa1735471c2e6f15326098"
      ],
      "author": {
        "name": "Sreeram Yerrapragada",
        "email": "syerrapragada@vmware.com",
        "time": "Mon Mar 10 14:12:58 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Yerrapragada",
        "email": "syerrapragada@vmware.com",
        "time": "Wed Mar 12 10:35:19 2014 -0700"
      },
      "message": "fix failing wget statements under -o errexit in vmdk upload routine\n\nFix the case when uploaded image has no descriptor.\nRefactored the code a bit\n\nTested:\n1. monithic Sparse\n2. monolithic flat\n    2.1 flat file name mentioned in descriptor file\n    2.1 flat file name not mentioned in descriptor file\n3. descriptor header not found in the file\n    3.1 image file name is *-flat, download descriptor\n    3.2 image file name does not end with *-flat\n4. file name contains all image properties\n\nChange-Id: I0df9be5c2a1b9ed53cdb22d5cd40b94e56c48f37\nCloses-bug: #1289664\n"
    },
    {
      "commit": "99b622a936c0b6f5b6283f3bcdca3bd7d0628e29",
      "tree": "a1cad4c50d7821d76ab5744346e2987576f47b4a",
      "parents": [
        "4981bd75322810b5ad5bfc89ba77f6e8fb0733e8"
      ],
      "author": {
        "name": "Ryan Hsu",
        "email": "rhsu@vmware.com",
        "time": "Wed Mar 05 15:35:49 2014 -0800"
      },
      "committer": {
        "name": "Ryan Hsu",
        "email": "rhsu@vmware.com",
        "time": "Wed Mar 05 15:57:16 2014 -0800"
      },
      "message": "Refactor vmdk upload code\n\nA syntax error is hit when trying to upload a flat vmdk file that\nis accompanied by a descriptor file. The code block that handles\nthis has some unneeded characters that cause the error. Also,\nan else-block has been removed so that we can remove an extra\nindent.\n\nChange-Id: Iaf5c914e09da6831eeeec141228b39554a1e2216\nCloses-bug: #1288471\n"
    },
    {
      "commit": "314af0a7a97b31ff2a803a77e1a92f5b67857f18",
      "tree": "462563f64b7fc4cf1d09fe8f91e343b8e24ed984",
      "parents": [
        "9f935cbd4af02fe63021282e13bbb3c88758c346"
      ],
      "author": {
        "name": "Sreeram Yerrapragada",
        "email": "syerrapragada@vmware.com",
        "time": "Mon Mar 03 21:34:45 2014 -0800"
      },
      "committer": {
        "name": "Sreeram Yerrapragada",
        "email": "syerrapragada@vmware.com",
        "time": "Mon Mar 03 21:56:09 2014 -0800"
      },
      "message": "Fix upload function for vmdk files\n\nFix all grep statements failing under -o errexit.\n\nChange-Id: I0591a2ba7351d598eb5b29d68a83ce6290600938\n"
    },
    {
      "commit": "5894db323ff528c56bd036243ee15aad91e34fef",
      "tree": "4c6cdb2ebdbbee3efca8b0ee09936616e1226c53",
      "parents": [
        "f0ea4b0dda62e321c11078164d821575a17146c0",
        "d20f632a70565003ab8c72b2598201be79f4d782"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sat Mar 01 13:11:14 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sat Mar 01 13:11:14 2014 +0000"
      },
      "message": "Merge \"Move some comments of variables to right place\""
    },
    {
      "commit": "d20f632a70565003ab8c72b2598201be79f4d782",
      "tree": "5df8b8c900b560e183822d4ae1337ba722096a12",
      "parents": [
        "3ac259c6856b0f8f7fb24b987f83868c86517396"
      ],
      "author": {
        "name": "Masayuki Igawa",
        "email": "igawa@mxs.nes.nec.co.jp",
        "time": "Fri Feb 28 09:22:37 2014 +0900"
      },
      "committer": {
        "name": "Masayuki Igawa",
        "email": "igawa@mxs.nes.nec.co.jp",
        "time": "Fri Feb 28 10:35:49 2014 +0900"
      },
      "message": "Move some comments of variables to right place\n\nsetup_develop*() in functions has been moved to functions-common. But\nsome comments about the variables are still left.\nThis commit moves it to the right place.\n\nChange-Id: Ic360454f1ee72f51c9979d0468dee0913e9b32e4\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": "af616d93411a9a446ce0d2e72ea4fb7d281cd940",
      "tree": "73c5cf72c66d2a9c9c44f3a64dc7c9e4825a8917",
      "parents": [
        "4df996bcc6ffd0236576b81aaf50d09adc8042a1"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 17 12:57:55 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 24 10:38:18 2014 -0600"
      },
      "message": "Move setup_develop() to common\n\nIt\u0027s in the wrong place for current Grenade\n\nChange-Id: Ia670198332af5945a56d708cd83d9239df0c2287\n"
    },
    {
      "commit": "d8864feae93f898f043febf0b4734f0b61c602d4",
      "tree": "2c7e54c06e7745e39b4e13cc1a85f614deef62ea",
      "parents": [
        "83f7736dcf9039d9114dd4568687f28221bac5d9"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 17 11:00:42 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 17 11:18:12 2014 -0600"
      },
      "message": "Fix shocco errors\n\nClean up comments to fix errors seen while processing with shocco\n\nChange-Id: I0e97ad27613313f03e47c107051ea93b115d4744\n"
    },
    {
      "commit": "dff49a242eef817efa23d4e808aaa6a74ac82ed0",
      "tree": "fee5ccd8ef9805ee1589fd58286ab37eeca8f041",
      "parents": [
        "cc3fcc8c8ebbe0a2cec43e7c6e0f96aae4949764"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Jan 30 15:37:40 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 12 12:10:11 2014 -0600"
      },
      "message": "Split functions\n\nMove shared and non-DevStack-specific functions to `functions-common`.  This is\na code move only with some updated comments.  The functions are now\nsorted alphabetically within function groups, eg. all git-related functions\nare grouped together.  The groups are listed at the top of the file.\n\n\u0027functions\u0027 sources \u0027functions-common\u0027 so no additional changes are required\nfor backward-compatability.\n\nAll functions shared with Grenade have also been moved.\n\nfunctions-common was created from commit e0ed8ea038299952826b27a16753775472f108d8\n\nChange-Id: I73bf7134fd6a60ec1ea44a5bfab08b0569b60ded\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": "8dad4bde886ed2a5bb28d8eb43cfa874ee81c790",
      "tree": "e5faed5714213ac027a30f17eeec0e097d84d12c",
      "parents": [
        "b7bdb68b6226ae9b5b19afcdbce5795ba2286827"
      ],
      "author": {
        "name": "Arnaud Legendre",
        "email": "arnaudleg@gmail.com",
        "time": "Mon Feb 03 17:57:39 2014 -0800"
      },
      "committer": {
        "name": "Arnaud Legendre",
        "email": "arnaudleg@gmail.com",
        "time": "Mon Feb 03 18:17:01 2014 -0800"
      },
      "message": "upload_image.sh to support streamOptimized disks\n\nThe current version of the script will use \"preallocated\" as the\ndisk type of a stream optimized disk. This needs to be fixed by\nintrospecting the createType of the vmdk file.\n\nCloses-Bug: #1275993\n\nChange-Id: I98594acecf26dd1164870f43890254a19ef23fe9\n"
    },
    {
      "commit": "bfbcef08879fd741f0ffde1a7ca7a4eaff7d85da",
      "tree": "ee6c5b29c81f83fa5f6405da57deadb34c226eb8",
      "parents": [
        "813ba48a3ce830306cf847b44883f32b72befb14",
        "0b8f6e0fbba961de04d95ff0e06e515d1ea3ea8b"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Jan 26 02:43:31 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Jan 26 02:43:31 2014 +0000"
      },
      "message": "Merge \"Make sure not to revert local changes.\""
    },
    {
      "commit": "58cc03629fd4af1239bed59bd70eb7339bb9976d",
      "tree": "492742b3699f5fd736b997fc5856897d85d11cc7",
      "parents": [
        "d24a053a96cbc6f91b8ddef8c74a3ede90be5b39",
        "b93cd643432d3633c48bec02fcd7cb4f354f67ed"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Jan 26 02:33:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Jan 26 02:33:34 2014 +0000"
      },
      "message": "Merge \"upload_image.sh should parse filenames correctly\""
    }
  ],
  "next": "b93cd643432d3633c48bec02fcd7cb4f354f67ed"
}
