)]}'
{
  "log": [
    {
      "commit": "029598ea74ab2adf08801e384b919cc2cd13398c",
      "tree": "c2f34e2842eb356670f61a2dbf6a0b42a75f16e0",
      "parents": [
        "a1e1b5c192d3c6176c9a16da9db4ff98a64fbe7c"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Jan 17 11:17:16 2013 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Jan 17 12:15:12 2013 -0600"
      },
      "message": "Fix secgroups exercise on postgres\n\nThis should fix the failing (but non-voting) postgres gate tests.\n\nWhy does postgresql change the value \u00270.0.0.0/00\u0027 to \u00270.0.0.0/0\u0027?\nClearly the correct value for the network CIDR bits is with only\none zero but even an incorrect value shouldn\u0027t be changing.\n\nSQLalchemy is given this for the column:\n        Column(\u0027cidr\u0027, String(length\u003d255)),\n\nChange-Id: Ib19dad23789654664e90518087e5a462fa8b8034\n"
    },
    {
      "commit": "a1e1b5c192d3c6176c9a16da9db4ff98a64fbe7c",
      "tree": "7acde669942cb355fd9f89857f3907acf695374a",
      "parents": [
        "f528f4ed9f2dc3356b8bdb40dd6ff81f1a41101b"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Wed Jan 16 08:38:17 2013 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Wed Jan 16 08:38:17 2013 +0100"
      },
      "message": "Case correct InvalidInstanceID.NotFound\n\nChange-Id: Iab067398205f51d640355ef91f0896afaecc4dea\n"
    },
    {
      "commit": "3860a9252a8546326a7ac9f0c8b2c09afe655491",
      "tree": "a4e5e1698998f00702507ba7b785585e5f1c0b26",
      "parents": [
        "fec9355fd274a588f27c28741a249790416c7605"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Mon Jan 14 13:14:34 2013 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Mon Jan 14 13:46:24 2013 +0100"
      },
      "message": "Have ecua.sh to accept the correct error code\n\necua.sh will accept both the current and the correct error code\n\nChange-Id: I364e411986b9780fd5c5df29697753f04a9a4935\n"
    },
    {
      "commit": "15bda3e4630618135b26bd5a41f48e8c2fb0112b",
      "tree": "e4bae911d95d51f0e298c53ca1900e4b444cd077",
      "parents": [
        "a611e5c7b18f9f90c742dec850c3c94697cb4cf8"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 11 15:07:53 2013 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Jan 11 15:09:14 2013 -0600"
      },
      "message": "Handle existing security group rules in volume exercise\n\nChange-Id: I0aa3bc0c6179f92a12c1e9bbace61597778ffa1f\n"
    },
    {
      "commit": "756c842a7743a84a084b4cc211998e3fdd171592",
      "tree": "706c7fdbc268b508c3970b4576b3c9c34cadc66b",
      "parents": [
        "822d9b6c992c21617243496760a746cf53672430"
      ],
      "author": {
        "name": "Adam Gandelman",
        "email": "adam.gandelman@canonical.com",
        "time": "Fri Jan 04 13:37:22 2013 -0800"
      },
      "committer": {
        "name": "Adam Gandelman",
        "email": "adam.gandelman@canonical.com",
        "time": "Fri Jan 04 13:37:49 2013 -0800"
      },
      "message": "Properly wait until volumes are gone in volumes.sh\n\nA logic error in volume exercise\u0027s wait for volume deletion\ncauses the test to do the opopsite, and continue on even tho\nthe volume is in in the \u0027deleting\u0027 state.  If using a volume\nbackend that can quickly delete volumes (ceph), and the volume\nis gone before entering the wait, the loop will spin, timeout\nand fail the test.\n\nChange-Id: I8e3d2aaa04e6a165e0dee32bedac97d35e13d5eb\n"
    },
    {
      "commit": "6d04fd7ba59450c4d9c6c7317eef05c7812056b1",
      "tree": "e60eafb8841a7c647e2aee7326f0d060d6d9c215",
      "parents": [
        "5ba0360b3266be26418dbd828e5e13386a324b2d"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Dec 21 11:03:37 2012 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Dec 28 18:03:10 2012 -0600"
      },
      "message": "Holiday docs and comment formatting cleanup\n\nChange-Id: Ia4ca88c67d3b94e306a79a669805a2fa1b0dc069\n"
    },
    {
      "commit": "796342c06e8ca3dcfd2e8f1ba4e0300a703b8de1",
      "tree": "8be4d4ab206fc3134d9c38875f379793ef3063a0",
      "parents": [
        "cf37f6a0f262db4ef404488e1ec83a4f60e5d520"
      ],
      "author": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Fri Dec 28 11:08:20 2012 +1100"
      },
      "committer": {
        "name": "Michael Still",
        "email": "mikal@stillhq.com",
        "time": "Fri Dec 28 11:22:20 2012 +1100"
      },
      "message": "Handle the new behaviour for invalid instances.\n\nThe behaviour of this case changed with bug/836978. Requesting the\nstatus of an invalid instance will now return an error message\nincluding the instance id, so we need to filter that out.\n\nResolves the devstack elements of bug 836978.\n\nChange-Id: I385eb6f04cff90e1ddc0b79d835fbbdf92e4e9ff\n"
    },
    {
      "commit": "ac25b0359ae1beb348b7a47ca3e9984773e88168",
      "tree": "a18914c9c789d3de7b3a46d69062a722b3411ff9",
      "parents": [
        "d6decab220e933c37a5717091be0d58fd18e54db"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Wed Dec 19 11:15:46 2012 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Wed Dec 19 11:15:46 2012 -0500"
      },
      "message": "turn debug on for euca-upload-bundle\n\nthis spuriously fails in devstack gate, and need to turn\nthis on to get to the bottom of the fails.\n\nChange-Id: I7d5c1b4d3230efacdd8a3b89e5e40e98ac894a1d\n"
    },
    {
      "commit": "2a255d9922aefdad8309664d1c0afee96df5e70f",
      "tree": "285a355030e5a6b1968287d667731035824a52bd",
      "parents": [
        "bc81c67839d860796dad69bc20009ef01a6910ac",
        "5c1bedd1edcd04c749721d55710c629bc3d91d12"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Dec 18 12:52:52 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Dec 18 12:52:52 2012 +0000"
      },
      "message": "Merge \"Update aggregates test for aggregates bp\""
    },
    {
      "commit": "b0d8a8288be6ad23114563c4bf62338c79766501",
      "tree": "cd2ff84cd83d83ec133472cf19efec859247a50f",
      "parents": [
        "1bd2a1b18601fa4f896160c348f2f5988d8b0106"
      ],
      "author": {
        "name": "Armando Migliaccio",
        "email": "amigliaccio@internap.com",
        "time": "Thu Dec 13 16:08:48 2012 +0000"
      },
      "committer": {
        "name": "Armando Migliaccio",
        "email": "amigliaccio@internap.com",
        "time": "Thu Dec 13 17:02:24 2012 +0000"
      },
      "message": "make volume size parametric in boot_from_volume\n\nFixes bug #1090007\n\nChange-Id: Ifa13b0b7b62be75805db2730cb7154406f0c1b94\n"
    },
    {
      "commit": "5c1bedd1edcd04c749721d55710c629bc3d91d12",
      "tree": "6330bc0c8d6375bd7725b1962d7701972015a34d",
      "parents": [
        "00626a3186650fb111d9af5e2d69311aa5b3d3c2"
      ],
      "author": {
        "name": "Joe Gordon",
        "email": "jogo@cloudscaling.com",
        "time": "Wed Dec 12 12:03:19 2012 +0000"
      },
      "committer": {
        "name": "Joe Gordon",
        "email": "jogo@cloudscaling.com",
        "time": "Wed Dec 12 12:20:01 2012 +0000"
      },
      "message": "Update aggregates test for aggregates bp\n\nInstead of implementing availability zones in the service table,\navailability zones will be implemented using general aggregate metadata.\n\nSo when an aggregate is created it will already have metadata.\n\nPart of blueprint aggregate-based-availability-zones\n\nChange-Id: I0fd22399b99a14087fef63fc91d0baef746efbed\n"
    },
    {
      "commit": "1e32d0ab191bfe8a8c89580b9f84fe38ded7af0a",
      "tree": "3cabf41eadc781bb4fb76838402bd36c582dc683",
      "parents": [
        "e5f8d1228a139ae13da5f2fbdfd09b3b43fd52fd"
      ],
      "author": {
        "name": "Mate Lakat",
        "email": "mate.lakat@citrix.com",
        "time": "Fri Dec 07 12:46:15 2012 +0000"
      },
      "committer": {
        "name": "Mate Lakat",
        "email": "mate.lakat@citrix.com",
        "time": "Fri Dec 07 12:46:15 2012 +0000"
      },
      "message": "exercises/euca: Fix volume timeout\n\nFixes bug 1087656\n\nIn euca exercise, the timeout for one of the volume operations was\nspecified as ASSOCIATE_TIMEOUT, whereas the timeout error message was\nmentioning RUNNING_TIMEOUT. This fix changes the timeout to\nRUNNING_TIMEOUT so that it is consistent with the error message.\n\nAs RUNNING is usually larger than ASSOCIATE, it leaves more time for the\nvolume operation.\n\nChange-Id: Ic016c7920ae6e4ec9a476bb5612b7df9eed01c75\n"
    },
    {
      "commit": "8bc21f6476304ca319489612867109d43d44cb6f",
      "tree": "f2f9d2977dcc701ae553481b82d3c3ebf21d0f8b",
      "parents": [
        "a1daabd3402c7b9ce56f2723109dd23b1e0215f3"
      ],
      "author": {
        "name": "Nachi Ueno",
        "email": "nachi@nttmcl.com",
        "time": "Mon Nov 19 22:04:28 2012 -0800"
      },
      "committer": {
        "name": "Nachi Ueno",
        "email": "nachi@nttmcl.com",
        "time": "Wed Dec 05 17:55:08 2012 -0800"
      },
      "message": "move setup_quantum to stack.sh\n\nsudo is only allowed in stack.sh on the CI, so move setup_quantum code\nto the stack.sh.\nalso fixes quantum debug command setup for linuxbridge and ryu\n\nChange-Id: I11bc0aa242a690e25acc088b3e9f483ceab38f26\n"
    },
    {
      "commit": "0da8dbd0a369d90e7eafd88e54a1cff91f09448d",
      "tree": "a65da34453efda578b914954f708409b27f116ef",
      "parents": [
        "318408c9a863321c4c052f8512fe80249a6d7356"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Thu Nov 29 14:37:14 2012 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Fri Nov 30 16:46:09 2012 -0500"
      },
      "message": "create a horizon exercise for sanity check\n\nfrom time to time horizon gets broken in devstack and it\ntakes a while to figure out why. Put a sanity check into\ndevstack exercises that checks for horizon front page being\nup and not just a stack trace to use as a simple gate.\n\nChange-Id: I13a6c59881f618d5194b1625b67115013c9cb6c2\n"
    },
    {
      "commit": "7a51891cb4dc6b2ee56ad24000ba1fcfed084528",
      "tree": "6f00e542c4755f474292066c777109af73989e02",
      "parents": [
        "69f8729233a8f2ba95390cd4d1c99bd3c199c95c",
        "6fd2811726c098e0311bc22c84c5da0d6aa89c62"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Nov 14 21:58:47 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Nov 14 21:58:47 2012 +0000"
      },
      "message": "Merge \"Remove support for nova-volume\""
    },
    {
      "commit": "6fd2811726c098e0311bc22c84c5da0d6aa89c62",
      "tree": "f1fcc2456fe7df3ae4120fc646a947c58d5d3705",
      "parents": [
        "43a94c476d3a69452244731d86e81b3eccb9cc23"
      ],
      "author": {
        "name": "Joe Gordon",
        "email": "jogo@cloudscaling.com",
        "time": "Tue Nov 13 16:55:41 2012 -0800"
      },
      "committer": {
        "name": "Joe Gordon",
        "email": "jogo@cloudscaling.com",
        "time": "Wed Nov 14 13:21:58 2012 -0800"
      },
      "message": "Remove support for nova-volume\n\n* nova-volume has been removed in Grizzly\n* part of delete-nova-volume\n\nChange-Id: Iba91d69950767823d77aaaa93243b0f476dbb04d\n"
    },
    {
      "commit": "b459d0e3ba7cfbd49f4b37ccb64f9350228997eb",
      "tree": "ec1404b0a5238e74183bd8f7e95a2421f6457f05",
      "parents": [
        "da339829472ffcdc3044f79b76b6cd03608db191",
        "5db5bfa28f48b0524db6d25d340d12c96270ac0e"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Nov 14 16:30:55 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Nov 14 16:30:55 2012 +0000"
      },
      "message": "Merge \"Make exercise.sh with quantum work\""
    },
    {
      "commit": "5db5bfa28f48b0524db6d25d340d12c96270ac0e",
      "tree": "1d51d0881bb4b8b7a6de72bca9582b72c9622cec",
      "parents": [
        "c6b9fcaed10eb8afc73310c0af75a5c682405c59"
      ],
      "author": {
        "name": "Nachi Ueno",
        "email": "nachi@nttmcl.com",
        "time": "Mon Oct 29 11:25:29 2012 -0700"
      },
      "committer": {
        "name": "Nachi Ueno",
        "email": "nachi@nttmcl.com",
        "time": "Tue Nov 13 10:40:59 2012 -0800"
      },
      "message": "Make exercise.sh with quantum work\n\n- added support for quantum-debug command\n- added ping and ssh method for quantum\n\nChange-Id: Iebf8a0e9e2ed2bb56bee6533e69827e6caa2bc82\n"
    },
    {
      "commit": "161e2807a9f530988e21b9b723fb43dbc992496c",
      "tree": "d627f537a82e075c2806f9eeef958d0f72daaee6",
      "parents": [
        "308beccc2475f7ff35421eef23048fc1d43a3491"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Mon Nov 05 13:59:49 2012 -0700"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Mon Nov 05 15:13:36 2012 -0700"
      },
      "message": "Update devstack exercises to call cinderclient\n\nExercises use nova volume-* commands still.  This works fine,\nhowever moving forward now that cinder is the default volume service\nwe should use the cinderclient explicitly for the applicable calls.\n\nAttach/Detach are still novaclient commands, however the others\n(create, delete, list, etc) should be cinderclient.\n\nChange-Id: I336de1b69a32eee6c91655b0a5bf8541b243f2f0\n"
    },
    {
      "commit": "fda946e3eb46fc59ff79f83e68a8488141f3444e",
      "tree": "35b6e15cf05dfbef643ef45c2b037f1366ee0db9",
      "parents": [
        "92c964f92a7460ecf37d0fb10e7d006bb203779c"
      ],
      "author": {
        "name": "Nachi Ueno",
        "email": "nachi@nttmcl.com",
        "time": "Wed Oct 24 17:26:02 2012 -0700"
      },
      "committer": {
        "name": "Nachi Ueno",
        "email": "nachi@nttmcl.com",
        "time": "Thu Oct 25 21:52:31 2012 -0700"
      },
      "message": "Added ping_check and ssh_check functions and use it in exercise.sh\n\nChange-Id: I69d41c9db527f60f250b6af36b2d8e9d0dd39684\n"
    },
    {
      "commit": "fc65cfed553372152ffe8a6c0e4229607706ef8d",
      "tree": "0991ac5af1afe8ed017a124fb0cbd771096507fc",
      "parents": [
        "eccaa80ba8ff539785f0a58aefc4bd511c369f9d"
      ],
      "author": {
        "name": "Eoghan Glynn",
        "email": "eglynn@redhat.com",
        "time": "Fri Oct 19 21:26:41 2012 +0100"
      },
      "committer": {
        "name": "Eoghan Glynn",
        "email": "eglynn@redhat.com",
        "time": "Sat Oct 20 14:18:06 2012 +0100"
      },
      "message": "Directly create bootable volume based on image ID.\n\nNow that a bootable volume can be created directly based on\nimage ID, we can dispense with the complexity around using\na builder instance to acheive the same effect.\n\nChange-Id: Ied1f6863a4dd21685e2f135841b9e2c4d499675f\n"
    },
    {
      "commit": "082a3da01f01de6b71e24710b4201f969e69d1c9",
      "tree": "01c3ef54c1dba32da68767ac2ffa98420ecd30c5",
      "parents": [
        "45ae8ccc4ade72e3032029aef3f0cd8b36f924ba"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Sat Oct 06 22:19:33 2012 -0600"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Sat Oct 06 22:26:39 2012 -0600"
      },
      "message": "Remove extraneous timing messages from volumes.sh\n\nChange: I3bbcc5b9f8a4da2fcdb9f6f70913c2d6bc6e2b9b\nadded some timing messages around the volume operations in\nexercises/volumes.sh.  This was a good idea, but some\nuseless timing info was added to failed cases, this patch\npulls that back out.  The only parameter used to detect\nfailure is a timeout, so outputing the time elapses in\nthese cases is useless.\n\nChange-Id: I609a803a7293aa8a8e3cec186984de59bfe9b409\n"
    },
    {
      "commit": "496ffc74bb255efce367033d56f23f626efa4db4",
      "tree": "2686b35a234002c9824fd9fd89ce607c0d893182",
      "parents": [
        "c6cc585f9740fdf98d7068e0269f7ba8276cb24a"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Wed Sep 26 15:09:52 2012 -0600"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Wed Sep 26 15:11:11 2012 -0600"
      },
      "message": "Add timing info to volume exercises.\n\nLooking at some failures lately in Jenkins/Devstack runs and it would\nbe handy to see if failures were time-out related versus flat out failed\noperations.\n\nMore interestingly it might be worthwile to harvest the completion time\ninfo from the jenkins logs and keep track of any significant deviations\nintroduced by code changes.\n\nChange-Id: I3bbcc5b9f8a4da2fcdb9f6f70913c2d6bc6e2b9b\n"
    },
    {
      "commit": "dc9e2880a3510205f3e2d0a7db3185005303b42d",
      "tree": "6753239d6e76ef942b4342e3a69952f8c8ac3594",
      "parents": [
        "9dce274dac1a68074b61bfe392b3c55e186bb7dd"
      ],
      "author": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Fri Sep 21 23:20:06 2012 +0000"
      },
      "committer": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Fri Sep 21 23:20:06 2012 +0000"
      },
      "message": "Modify euca test to get zone using describe\n\nThis modifies the euca test to include describe-availability-zones\nso that it is covered. This allows us to not need to hard-code a\nzone name for the volume tests.\n\nChange-Id: Iaae0589d4338d948981ca6e2229d2ceb73ff38ef\n"
    },
    {
      "commit": "8efdbacce33f86bb319dc50b29501c51fad331c0",
      "tree": "1e193ddb6e1eec18a8aea037ed3d283937660630",
      "parents": [
        "fc326b3847b345505ad9cadff8a1b415f44518c5"
      ],
      "author": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Fri Sep 21 00:23:41 2012 +0000"
      },
      "committer": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Fri Sep 21 00:23:41 2012 +0000"
      },
      "message": "Change default zone back to nova\n\nChange-Id: I9a097ab77c6b9fab3f33a245bca3bc0037f67fd1\n"
    },
    {
      "commit": "026b305c3afbc85edda81c93177f878e77c7a0ab",
      "tree": "d77b008b8c779802efafdd59bc9ecd2e9aef020d",
      "parents": [
        "ff0b07e7f87103d51e8523b142996e040b95082d",
        "834805350a1f75b6a301cc9e6ffb2d6222e423be"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Sep 13 01:49:56 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Sep 13 01:49:56 2012 +0000"
      },
      "message": "Merge \"Fix errors in client-* exercises\""
    },
    {
      "commit": "834805350a1f75b6a301cc9e6ffb2d6222e423be",
      "tree": "914366316ca83b481c67079b2105e85968619336",
      "parents": [
        "eff0c6cf19680b28e1afe3deab55ba01151bfa7e"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Sep 12 14:45:48 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Sep 12 14:45:48 2012 -0500"
      },
      "message": "Fix errors in client-* exercises\n\nChange-Id: Ib100c7a2a4bb7f7c02cf4a66cb8bcf506aa11339\n"
    },
    {
      "commit": "37258958ce7550c0662cf104b007b79e3dc76003",
      "tree": "ccf37cc10095838f092c6dfee2e0dc626384ba31",
      "parents": [
        "eab531a053ab64ad93f54a3cbc7942f8b9eb445c"
      ],
      "author": {
        "name": "Chuck Short",
        "email": "chuck.short@canonical.com",
        "time": "Tue Aug 07 10:38:44 2012 -0500"
      },
      "committer": {
        "name": "Chuck Short",
        "email": "chuck.short@canonical.com",
        "time": "Tue Sep 11 09:24:04 2012 -0500"
      },
      "message": "Add volume tests to exercises/euca.sh\n\nExcercise euca2ools volumes commands when\nexercising the other euca2ools as well.\n\nChange-Id: Ia43bd233c63224eac5e851b3b8a3dbdbf3b5e1f0\nSigned-off-by: Chuck Short \u003cchuck.short@canonical.com\u003e\n"
    },
    {
      "commit": "c5dfecd81829a08986ce3e5f2ab2aba4d9909886",
      "tree": "b3b8a25626adec6a6bcc37343e2763cf391b5902",
      "parents": [
        "59f4da37c44ce0b7f0aa8b812c69b8b80351cf5a"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Sep 08 14:20:43 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Sep 08 14:21:44 2012 -0500"
      },
      "message": "Fix RST formatting errors\n\nClean up some shocco RST errors\n\nChange-Id: I9afa0f155f2bfcc73638ae11447c693579288355\n"
    },
    {
      "commit": "6c32c6edabe38b9886555c5fadf7010b1ee6b338",
      "tree": "c5b1c2c40469f99382089692b7bb3eca49ceec64",
      "parents": [
        "6a1c8497733073ec5855acf7e6de2f57cbf6bf9a"
      ],
      "author": {
        "name": "Maru Newby",
        "email": "mnewby@internap.com",
        "time": "Thu Sep 06 13:47:49 2012 -0700"
      },
      "committer": {
        "name": "Maru Newby",
        "email": "mnewby@internap.com",
        "time": "Thu Sep 06 13:47:49 2012 -0700"
      },
      "message": "Fix quantum exercise script to use private CIDRs.\n\n * Addresses bug 1047024\n\nChange-Id: Iba5a369b94a6c0e14edea9d13079a80a85adf907\n"
    },
    {
      "commit": "6a1c8497733073ec5855acf7e6de2f57cbf6bf9a",
      "tree": "0d027cdf841885d00da5c46c1843043ae43591a8",
      "parents": [
        "96288ba9a9fffa0d45545d091bd9781476503f7c",
        "178b8402d962d629dbaffea8e2c454f391a16331"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Sep 05 18:15:24 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Sep 05 18:15:24 2012 +0000"
      },
      "message": "Merge \"Fix aggregates test with multi host setup\""
    },
    {
      "commit": "178b8402d962d629dbaffea8e2c454f391a16331",
      "tree": "553a079a2d4b677f086a74994ffde01b67cb0804",
      "parents": [
        "40f351e598cedfb54e2eaf8c32eed7bf74c0e47b"
      ],
      "author": {
        "name": "Mate Lakat",
        "email": "mate.lakat@citrix.com",
        "time": "Wed Sep 05 10:42:10 2012 +0100"
      },
      "committer": {
        "name": "Mate Lakat",
        "email": "mate.lakat@citrix.com",
        "time": "Wed Sep 05 10:42:10 2012 +0100"
      },
      "message": "Fix aggregates test with multi host setup\n\nFixes bug 1046222.\n\nThe aggregate exercise assumed that you have only one compute node, thus\nit failed with syntax error for two hosts. With this fix, the exercise\nwill pick the first compute host, and use that for the tests.\n\nChange-Id: I85d76552295d640e1a9d86fbbed781f15529d047\n"
    },
    {
      "commit": "96288ba9a9fffa0d45545d091bd9781476503f7c",
      "tree": "8d6c5669f14ff2fe4dd66f3dcea4f8e61f43b1b2",
      "parents": [
        "40f351e598cedfb54e2eaf8c32eed7bf74c0e47b"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Aug 17 14:11:55 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Sep 04 17:56:16 2012 -0500"
      },
      "message": "Clean up security groups in exercises\n\n* fix problem with deleting security groups too early in\n  floating_ips.sh and euca.sh\n* create and clean up security groups\n* cosmetic cleanups\n\nChange-Id: Ie45e03f889c540ec83f27a02b10e787060c5d4d7\n"
    },
    {
      "commit": "ea23e686643778ae9e421e3772f8f93e127c383f",
      "tree": "8889fbed634d7bf8883ba493675b691fbb2c679f",
      "parents": [
        "43bedda56c8a695a7362cd0ceaa499bb58bc0020"
      ],
      "author": {
        "name": "Dan Wendlandt",
        "email": "dan@nicira.com",
        "time": "Wed Aug 22 05:53:17 2012 -0700"
      },
      "committer": {
        "name": "Dan Wendlandt",
        "email": "dan@nicira.com",
        "time": "Wed Aug 22 05:53:17 2012 -0700"
      },
      "message": "Exercise quantum v2 api without namespace\n\nAdded quantum_v2.sh for quantum v2 api exercise.\n\nQuantum exercise script requires the following settings:\n- Q_USE_NAMESPACE\u003dFalse\n- LIBVIRT_FIREWALL_DRIVER\u003dnova.virt.firewall.NoopFirewallDriver\n\nAnd the following services enabled:\n- quantum, q-svc, q-agt, q-dhcp\n\nChange-Id: I5767f94c94187a4ca0fd189244fa6f5781519ab4\n"
    },
    {
      "commit": "9fbeeddc3b6ea28c06d5468b0bc28966d4fbc6ce",
      "tree": "26ff8135df45713130099233991a1d076d5e29e7",
      "parents": [
        "555767abbf2191feb1c2ecfeff1356a9e2e52ef8"
      ],
      "author": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Aug 17 12:52:27 2012 -0400"
      },
      "committer": {
        "name": "Monty Taylor",
        "email": "mordred@inaugust.com",
        "time": "Fri Aug 17 19:04:54 2012 -0400"
      },
      "message": "Support the possibility of using entry-points.\n\nIf console scripts are generated via entry-points, they will go into\n/usr/local/bin on python setup.py develop and they will not be found in\n/opt/stack/$PROJECT/bin any more. This patch supports a transition to\nentry-points console scripts, but should still allow the old thing too.\n\nChange-Id: I816f5f796ad00ac55a8352743ba01723df140072\n"
    },
    {
      "commit": "839d370c05093fd03e9ce9e137862b0f6609d1de",
      "tree": "81e717bf1c31e93e0906a7772d52120903b1f1f7",
      "parents": [
        "8227a7757295d98e83b272e09b071a6a75b8f446",
        "b7ef539b126e845ceeb2a724e8abc0d2e5e36a14"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Wed Aug 15 20:35:57 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Wed Aug 15 20:35:57 2012 +0000"
      },
      "message": "Merge \"Improve exercises/aggregates.sh\""
    },
    {
      "commit": "c0c6f00698ca88f3c88f90ba211b234096eb3ac6",
      "tree": "aa96e08abc5927b690b3cc1e1e36a675fe927bc7",
      "parents": [
        "43278a3cb5f6f622ffae1e64587c2867f34914e7"
      ],
      "author": {
        "name": "Devananda van der Veen",
        "email": "devananda.vdv@gmail.com",
        "time": "Fri Jul 06 17:49:12 2012 -0700"
      },
      "committer": {
        "name": "Devananda van der Veen",
        "email": "devananda.vdv@gmail.com",
        "time": "Fri Aug 03 18:15:01 2012 -0700"
      },
      "message": "enable testing of openvz guests\n\nThis patch adds several options to allow using OpenVZ virt layer.\n- modifies stack.sh and stackrc to recognize a new VIRT_TYPE option\n- set IMAGE_URLS to an openvz image, if VIRT_TYPE \u003d\u003d openvz\n\nIt also makes a few changes to some tests so that some implicit\ndefaults (such as the guest user account) can be overridden.\n\nChange-Id: I0dde2dffbf3848fac1dd27eb37af84c0ac73d9aa\n"
    },
    {
      "commit": "b7ef539b126e845ceeb2a724e8abc0d2e5e36a14",
      "tree": "0440a7b187694ffff80c190eeaa56d2c34261716",
      "parents": [
        "3256b8d6511b7194d2da359460ef118983b96534"
      ],
      "author": {
        "name": "Joe Gordon",
        "email": "jogo@cloudscaling.com",
        "time": "Wed Aug 01 16:13:42 2012 -0700"
      },
      "committer": {
        "name": "Joe Gordon",
        "email": "jogo@cloudscaling.com",
        "time": "Wed Aug 01 17:18:39 2012 -0700"
      },
      "message": "Improve exercises/aggregates.sh\n\n* Update for blueprint general-host-aggregates\n* Test for add/remove hosts\n* Now uses nova host-list\n\nChange-Id: Id6fef649c13032cf9148d7152fa2b28654717892\n"
    },
    {
      "commit": "d79aa2c48f1b79fb2d6baeec6a0b054835efa6c5",
      "tree": "bcdfcf7e7eb9d44b2dd7d6ee927faa9b2038412c",
      "parents": [
        "f59f2f459044f9f01dd3d6403cc5430a18006565",
        "ea6b2d3f3249b766fffb460d28b5feef110858fc"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Jul 13 21:21:55 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Jul 13 21:21:55 2012 +0000"
      },
      "message": "Merge \"add TENANT_ARG to swift command line.\""
    },
    {
      "commit": "ea6b2d3f3249b766fffb460d28b5feef110858fc",
      "tree": "50197f333e26b362ffc4c61fae026024c5fe99bf",
      "parents": [
        "67ec4065fbd430e7f55c75976e3d7f765d732e6e"
      ],
      "author": {
        "name": "Armando Migliaccio",
        "email": "amigliaccio@internap.com",
        "time": "Wed Jul 04 16:24:47 2012 +0100"
      },
      "committer": {
        "name": "Armando Migliaccio",
        "email": "amigliaccio@internap.com",
        "time": "Wed Jul 04 16:24:47 2012 +0100"
      },
      "message": "add TENANT_ARG to swift command line.\n\nFix bug 1020985.\n\nChange-Id: I51733d37a50159a4b4872d61fa768d5bba3d6a03\n"
    },
    {
      "commit": "ad101767b7f611ad5ac9a7972b74d6221b962908",
      "tree": "f09c257723faea69efc346898537797cd2bdaab9",
      "parents": [
        "c4cd4140d3bb64a02321918df2f0f9258c6c4148"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Jun 27 22:04:40 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Jun 27 22:25:22 2012 -0500"
      },
      "message": "Cleanup exercise scripts\n\n* whitespace and comment cleanups only\n\nChange-Id: Iab9c2d9a25c3473f14190d60f2f2cf5be0ed59dc\n"
    },
    {
      "commit": "67787e6b4c6f31388cbee6d83b67371b31c443d4",
      "tree": "ae56f924e8e1395a4187cf8c2626e9ca90ab62a7",
      "parents": [
        "1c620dfcc66401041131c9b5a675bca243aa4a4f"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed May 02 11:48:15 2012 -0500"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Wed Jun 20 14:11:19 2012 -0600"
      },
      "message": "Add cinder support\n\n* using the new functional pattern: cinder_XXX functions are in\n  lib/cinder\n* enable with \u0027c-api,c-sch,c-vol\u0027 in ENABLED_SERVICES, n-vol is still the default\n* exercises/volumes.sh runs for cinder and n-vol\n* move config to /etc/cinder\n* change volume_group to stack-volumes; this also renames the backing file\n  to /opt/stack/data/stack-volumes-backing-file.\n* removes osapi_volume from nova.conf enabled_apis\n* integrates cinder + keystone\n* launches c-sch\n* tweaks for multi node\n* move enabled_apis substitution to init_cinder\n\n18Jun2010\n* restored \u0026 rebased\n* update setup.py to use setup_develop() in lib/cinder\n\nChange-Id: I1e1aa4387031c56e4fa239eb73bea2af8cef0e38\n"
    },
    {
      "commit": "4415164d2f4f4c837b66b53fcaa712041b4c4bda",
      "tree": "3c23d55888790d94fd4ba42b2d043c12b9831015",
      "parents": [
        "33a19d4345ffc32a06f74dadd70842335e9c6400",
        "7d13f309bcd1f799e7fd90780614243342cfc6f7"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu May 10 19:26:20 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu May 10 19:26:20 2012 +0000"
      },
      "message": "Merge \"bug 985905: multi_host flag cunfusing settings\""
    },
    {
      "commit": "7d13f309bcd1f799e7fd90780614243342cfc6f7",
      "tree": "804b7e80fb29c33716e8eac993af3b676cd3bfa5",
      "parents": [
        "96c984e31d56c82342ac912a7e95c7379ac23a19"
      ],
      "author": {
        "name": "Armando Migliaccio",
        "email": "amigliaccio@internap.com",
        "time": "Thu Apr 19 22:26:16 2012 +0100"
      },
      "committer": {
        "name": "Armando Migliaccio",
        "email": "amigliaccio@internap.com",
        "time": "Wed May 02 15:33:54 2012 +0100"
      },
      "message": "bug 985905: multi_host flag cunfusing settings\n\nswitch to using trueorfalse for parsing MULTI_HOST values.\n\nChange-Id: I289563e0cd05cda014198cf21b3c88897aba5d4f\n"
    },
    {
      "commit": "255db3da19c11ce3b6d7dbbb871a57d7df215aae",
      "tree": "fc30d05cb0e0e512c91a31413d7897b492bbf0f1",
      "parents": [
        "a1c87388a45ede40cb150a137560d0aeb50bee0c"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Apr 27 15:29:14 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Apr 30 15:30:30 2012 -0500"
      },
      "message": "Update quantum.sh for glance client change\n\nChange-Id: Ib67301b26e1c3e1b68669eed6cd89e40687b14e9\n"
    },
    {
      "commit": "45495258d64589795b16f2b1927f5ca3490f9e16",
      "tree": "83886f7524e96d6966b4d1c81b65bd4b7b0b032b",
      "parents": [
        "4fcab6d0cf381a147e40121e0d0bc940d6882476"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Apr 13 13:16:38 2012 -0500"
      },
      "committer": {
        "name": "Brian Waldon",
        "email": "bcwaldon@gmail.com",
        "time": "Wed Apr 25 21:24:30 2012 -0700"
      },
      "message": "Add glance client\n\n* python-glanceclient overrides the old client shipped with glance in /usr/local/bin\n* start adding exercises\n\nChange-Id: I460ed5749bca69425f23d328c0537c2ef91f84a4\n"
    },
    {
      "commit": "b69536043c0789722965f768082553090018441c",
      "tree": "65ddf1159fc2d5de9459a8b64e2eb1327e764b00",
      "parents": [
        "7a5f7f2d9111727eab19c884550f9ee90d84fa6b",
        "dbdf6be8790305bbf1bb4e97369e097a4aa314cb"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Mon Apr 23 18:55:39 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Apr 23 18:55:39 2012 +0000"
      },
      "message": "Merge \"added sec_groups exercise\""
    },
    {
      "commit": "8ad0351148a850f4f34fb19797a1e0538cc8ac76",
      "tree": "99121657dc418f4900353f8e239c0fcf22d8ce8a",
      "parents": [
        "dac6e76c3ee5e01e49f38bfe8c75b2e0324c95b0"
      ],
      "author": {
        "name": "debo",
        "email": "ddutta@gmail.com",
        "time": "Tue Feb 28 17:47:26 2012 -0800"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Fri Apr 13 09:35:29 2012 -0700"
      },
      "message": "Updated CI test script\nDebo~ Dutta@Cisco, Dave Lapsley@Nicira\n * original at https://review.openstack.org/#change,3682\n * Allow this exercise to be skipped if quantum is not enabled\n\nChange-Id: I8463f654fb85394d78dd01c93c7f7b2706511030\n"
    },
    {
      "commit": "dbdf6be8790305bbf1bb4e97369e097a4aa314cb",
      "tree": "a0a3e63a183122ae50f8cce99d87a3093f46dd3e",
      "parents": [
        "b24fca07fa9d8324b11ec812119441258e3b4b61"
      ],
      "author": {
        "name": "Ben Andrews",
        "email": "andrewsben@gmail.com",
        "time": "Wed Apr 04 14:43:32 2012 -0400"
      },
      "committer": {
        "name": "Ben Andrews",
        "email": "andrewsben@gmail.com",
        "time": "Wed Apr 04 14:43:49 2012 -0400"
      },
      "message": "added sec_groups exercise\n\nChange-Id: Ib969efab4ef4c408fa59a44eff25d2c4ac56d024\n"
    },
    {
      "commit": "fd1c87e83035438d58692bef63186598373a06af",
      "tree": "fe078c8fc005518a01153b81cf74690395062209",
      "parents": [
        "08e07fb4c817796db06bf8b90982c3b7cc5c41f2"
      ],
      "author": {
        "name": "John Garbutt",
        "email": "john.garbutt@citrix.com",
        "time": "Fri Feb 24 14:52:54 2012 +0000"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Mar 28 18:24:52 2012 -0500"
      },
      "message": "blueprint host-aggregates\n\nadd some inital tests for the host-aggregates blueprint\n\nChange-Id: I0c07f2e7fd123bbda6d26f4ff64bea3949e57157\n"
    },
    {
      "commit": "408b009ccda94a95d3b3999f6db2bd62e92cdfb9",
      "tree": "7011b3ccd44a5e9d943514b84c6ae3f9b1e5616a",
      "parents": [
        "17ff9763da677f3db0339a395c558cdb881d5d56"
      ],
      "author": {
        "name": "Chmouel Boudjnah",
        "email": "chmouel@chmouel.com",
        "time": "Thu Mar 15 23:21:55 2012 +0000"
      },
      "committer": {
        "name": "Chmouel Boudjnah",
        "email": "chmouel@chmouel.com",
        "time": "Wed Mar 28 11:34:51 2012 +0100"
      },
      "message": "Allow skipping exercises.\n\n- Catch a special exit signal 55 to notify that we want to skip an\n  excercise.\n- Move is_enabled_service to functions.\n- Fix bug 928390.\n\nChange-Id: Iebf7a6f30a0f305a2a70173fb6b988bc07e34292\n"
    },
    {
      "commit": "27e326995aaddf9e34cdf54a56f0ed02fc04bfcc",
      "tree": "9abba1609d309b887f2960db9c00c92fb2f7bc0a",
      "parents": [
        "09407d90a841c05d83f82b588af0769161326a4d"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Mar 16 16:16:56 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Mar 19 10:06:15 2012 -0500"
      },
      "message": "Simplify die_if_error\n\n* Replace die_if_error() with the simpler die()\n* Attempt to clean up unnecessary trace output\n* Formatting cleanups on all exercise scripts\n\nChange-Id: I72a542b3a59ee9bf12bee6bcc605edd7579205e0\n"
    },
    {
      "commit": "77b0e1d8ff9617dc71cf92a7a9d7fb850e2e5998",
      "tree": "b640770acca70e2820a98f06668c0e458fd3e90d",
      "parents": [
        "737320f9998c90f0175bccb38042da2c6f2c7034"
      ],
      "author": {
        "name": "Chmouel Boudjnah",
        "email": "chmouel@chmouel.com",
        "time": "Wed Feb 29 16:55:43 2012 +0000"
      },
      "committer": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Thu Mar 15 20:59:45 2012 +0000"
      },
      "message": "Converts bundle exercise to use swift/s3\n\n- Fix keystone s3token configuration (in admin api not public api).\n- Set s3 service in keystone to swift if installed.\n- Fixes a bug in bundle.sh\n- Adds config options for nova to use swift as s3 store\n\nChange-Id: Ic2fca5aba06a25c0b3a74f1e97d062390a8e2ab1\n"
    },
    {
      "commit": "737320f9998c90f0175bccb38042da2c6f2c7034",
      "tree": "a89d692ad759e5673a35338074690e3ebe366e6b",
      "parents": [
        "7641463ade929b937d5ae8a78b010b97148f0600",
        "4d88347f59afbb99a3674bd93cf520c8ac305eea"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Thu Mar 15 17:51:55 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Thu Mar 15 17:51:55 2012 +0000"
      },
      "message": "Merge \"Add exercises/client-args.sh to test the pending cli changes for Keystone, Nova, Glance and Swift.\""
    },
    {
      "commit": "440be4b6a85f6e25de834d4f5b2736fd82785b17",
      "tree": "ce3445134737dd61ea081099978c8badda2c4e65",
      "parents": [
        "ae604985e78ae5e9763a348d132cb8e120b85c95"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Fri Feb 10 21:42:39 2012 -0800"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Mar 13 23:28:26 2012 -0700"
      },
      "message": "Add exercise that boots an instance from a volume.\n\n * Launches a cirros builder instance\n * Mounts a disk to the builder instance\n * Creates a bootable volume from builder\n * Launches the volume-backed instance\n * Update glance syntax\n * Don\u0027t require instance-to-web communication (that only works with\n   fully configured floating ips)\n * Add footer/header\n\nChange-Id: Ia6dcf399ee49154aaf4e597b060164c2f41cf3d2\n"
    },
    {
      "commit": "4d88347f59afbb99a3674bd93cf520c8ac305eea",
      "tree": "7f4bc86e1e9bdf682f9e1b9bac54e172c63a889b",
      "parents": [
        "ae604985e78ae5e9763a348d132cb8e120b85c95"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Mar 13 23:56:49 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Mar 14 01:04:32 2012 -0500"
      },
      "message": "Add exercises/client-args.sh to test the pending cli changes for Keystone, Nova,\nGlance and Swift.\n\nChange-Id: I05aeda9be61e9c556d23ebc33076477c71708460\n"
    },
    {
      "commit": "51fb454f71a9814486b5f3ad14bfad4d9c950596",
      "tree": "a93d0a4a6b8e08387268036046013682f3021f6d",
      "parents": [
        "8da5656ffd8b28d88536efbe6d452ab86c3b3e74"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Mar 09 22:21:59 2012 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Mar 12 11:44:32 2012 -0500"
      },
      "message": "Create exerciserc to configure exercises\n\n* Move timeouts from openrc to (new) exerciserc\n* Update all exercise scripts\n* Update HACKING.rst\n\nFixes bug 951315\n\nChange-Id: Icc4ff03a7dcf0cc711e204046176fb5186990c17\n"
    },
    {
      "commit": "0bd2410d469f11934b5965d83b57d56418e66b48",
      "tree": "a4c11f7dbe9ee31626ba02331c25704d67686e94",
      "parents": [
        "09cafcbaf33519a916a8d9514718806a070d1701"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Mar 08 00:33:54 2012 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Mar 09 21:41:00 2012 -0600"
      },
      "message": "Move all EC2 cred creation to eucarc\n\n* Remove credential creation from files/keystone_data.sh\n* Remove EC2 cert setup from openrc\n* Remove sourcing of ec2rc from stackrc\n* Collect the above in eucarc\n* Allow rc files to be sourced from other directories; based on Chmouel\u0027s\n  4881 proposal but is simpler and doesn\u0027t actually change the directory\n* Create S3 endpoint\n* Get EC2 and S3 endpoints from Keystone service catalog\n* Add EC2 credential checks to exercises/client-env.sh\n* exercises/bundle.sh and exercises/euca.sh use eucarc\n\nUpdates:\n* remove readlink -f to stay bash 3 compatible\n* use service catalog\n* create S3 endpoint\n\nFixes bug 949528\n\nChange-Id: I58caea8cecbbd10661779bc2d150d241f4a5822e\n"
    },
    {
      "commit": "489bd2a62b5949665bc7c4a05a52d27a987e0489",
      "tree": "baed5bdd9d9f3bdba8d1325125f61f7a72ddc56a",
      "parents": [
        "4807df8e5bc0e5e78536ecea37a0ca7621720524"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Mar 02 10:44:29 2012 -0600"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Fri Mar 02 17:55:37 2012 -0800"
      },
      "message": "Improve exercise robustness\n\n* Test returns and exit codes on most command invocations\n* Add start and end banners to make output easier to find in\n  long log files\n* Adds die_if_error(), die_if_not_set() and is_set() to functions\n* Add some function tests\n\nFixes bug 944593\n\nChange-Id: I55e2962c5fec9aad237b674732b1e922ad37a62e\n"
    },
    {
      "commit": "a6bdfddd2b9ac89ea5ceba7cde5f37eddaf936df",
      "tree": "23b98a6458078c1cc47ff045eab67adb786bab85",
      "parents": [
        "b32c876ed5e66c8971c8126432c1ae957301eb08"
      ],
      "author": {
        "name": "Chmouel Boudjnah",
        "email": "chmouel@chmouel.com",
        "time": "Wed Feb 29 14:11:01 2012 +0000"
      },
      "committer": {
        "name": "Chmouel Boudjnah",
        "email": "chmouel@chmouel.com",
        "time": "Wed Feb 29 14:20:49 2012 +0000"
      },
      "message": "Use OS common cli auth arguments.\n\nChange-Id: I80c9e42abb7060622d82cffc83d0108654a36562\n"
    },
    {
      "commit": "854d8c93b81667b04a3ad38720bcc02acf3d15b0",
      "tree": "63918b7cd4d161074f5048ee49e08c2bd5d12897",
      "parents": [
        "995bfe02520a0882d6ac3baad8cd5eab63565240"
      ],
      "author": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Mon Feb 27 22:41:54 2012 +0000"
      },
      "committer": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Tue Feb 28 01:15:57 2012 +0000"
      },
      "message": "Add a helper method to volumes test to get fields\n\n * The way we retrieve data from cli output is janky, this\n   improves it slightly by creating a helper method.\n\nChange-Id: Ib0889fd56f6a78bed85dad4c5e9e6e34bac9fb0d\n"
    },
    {
      "commit": "8534bcb6bb15db3d781228880040fd684a7cf228",
      "tree": "212e5ba300ab860d3de90525414df814123e4383",
      "parents": [
        "2e9158ebc61b349d4f238d2254bc1b9899d3f6fa"
      ],
      "author": {
        "name": "Chmouel Boudjnah",
        "email": "chmouel@chmouel.com",
        "time": "Sat Feb 25 08:04:48 2012 +0000"
      },
      "committer": {
        "name": "Chmouel Boudjnah",
        "email": "chmouel@chmouel.com",
        "time": "Sat Feb 25 18:44:26 2012 +0100"
      },
      "message": "Update Swift configuration with keystone latest.\n\n- Update Swift to use the new tokenauth and swift_auth from keystone.\n- Drop swift-keystone2.\n- Add swift3 / s3token in swift proxy pipeline (TODO: figure out\ntesting).\n- Fix exercises/swift.sh (workaround until review #3712 get merged).\n\nChange-Id: Ie85d30e14cee21c6f80043fccde92dfb229f0e80\n"
    },
    {
      "commit": "5836b1533a8d3cbe4dac7ad90c862948dadb1fbc",
      "tree": "a5e2ca98cf5dbd21d855cc3ed4411ba6e745d805",
      "parents": [
        "8d87ca05330d050561611fcc43cfa941a340d13a"
      ],
      "author": {
        "name": "Russell Bryant",
        "email": "rbryant@redhat.com",
        "time": "Fri Feb 24 10:23:33 2012 -0500"
      },
      "committer": {
        "name": "Russell Bryant",
        "email": "rbryant@redhat.com",
        "time": "Fri Feb 24 10:23:33 2012 -0500"
      },
      "message": "Wait for VM to stop before deleting security group.\n\nRelated to bug 938853.\n\nThe patch for this bug prevents deleting security groups through the\nOpenStack API if they are still in use.  This patch for devstack updates\nthe floating_ips exercise script to wait until the VM has stopped before\ndeleting the security group.\n\nChange-Id: If42f85934c2b92d4d001c419cabb09e2e3dc1aae\n"
    },
    {
      "commit": "243b26a84e0328eaa5e3051a17416b3323c2c703",
      "tree": "b3cc50d995241eed704a6ee3c99375bc1a095b6f",
      "parents": [
        "e7ed17eea4975931401d80e360cbd66e797ef258"
      ],
      "author": {
        "name": "Russell Bryant",
        "email": "rbryant@redhat.com",
        "time": "Wed Feb 22 11:19:32 2012 -0500"
      },
      "committer": {
        "name": "Russell Bryant",
        "email": "rbryant@redhat.com",
        "time": "Wed Feb 22 11:19:32 2012 -0500"
      },
      "message": "Wait for instance termination to complete.\n\nThis patch waits for instance termination to complete before trying to\ndelete the security group.  The last change to simply move the security\ngroup deletion to after euca-terminate-instance was not sufficient, as\nit has to wait until the termination is complete.\n\nChange-Id: Icba579534f324afb4d44abd42d8c755834dd2a57\n"
    },
    {
      "commit": "e7ed17eea4975931401d80e360cbd66e797ef258",
      "tree": "7b0eabb5267a45be324750f480886c59c35bf2f9",
      "parents": [
        "a3a496f9c2de8ab161bbe1e5723e66659bb1072e"
      ],
      "author": {
        "name": "Russell Bryant",
        "email": "rbryant@redhat.com",
        "time": "Tue Feb 21 17:43:33 2012 -0500"
      },
      "committer": {
        "name": "Russell Bryant",
        "email": "rbryant@redhat.com",
        "time": "Tue Feb 21 17:47:46 2012 -0500"
      },
      "message": "Delete security group after terminating instance.\n\nThis patch slightly modifies the order of operations in the euca exercise\nscript.  It moves the deletion of the security group to the end, after\nthe instance has been terminated.  The reason this change must be made\nis because of this change proposed to nova:\n\n    https://review.openstack.org/#change,4154\n\nWithout this change, when exercise.sh is run against this patch, the euca\nexercises will fail when the security group is deleted.  Moving it to the\nend should make it pass, as the security group will no longer be in use.\n\nChange-Id: I9095a02c42173ed1837ec20b38d5ef00fe4474ec\n"
    },
    {
      "commit": "80756ea71a86e91b2ec45ac25875a2e928b183be",
      "tree": "24764722bde5f04c87a1c5ef74455c2c134328ef",
      "parents": [
        "dd9809305ecfb782b1b079b79c181c07b03cda53"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 01 18:01:01 2012 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Mon Feb 13 23:49:15 2012 -0600"
      },
      "message": "Blueprint cli-auth\n\n* Add proper test for swift in client-env.sh\n* Remove all VERIFY variables; nothing beyond the 4 OS_ vars is set now\n* Update exercises for Keystone 2.0 auth\n* swift understands Keystone 2.0 auth now, don\u0027t download custom binary\n* cleanup uploaded bundle in bundle.sh\n\nChange-Id: I99c818d81534bbf93c0e142513acb80e5fe613ea\n"
    },
    {
      "commit": "a94784135e5c420e967e14ad535926ddc2580a9c",
      "tree": "cc73f8674604a29a4fc4397af5ac61ab7f477471",
      "parents": [
        "fcd135252b29d5bdd7349395734accafc85aed4f"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 08 11:49:28 2012 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 08 11:49:28 2012 -0600"
      },
      "message": "Not all distros include a symlink from euca-describe-group to euca-describe-groups\n\nChange-Id: Iaba71c36b405d2891aebdb45c1b9fd84853988f5\n"
    },
    {
      "commit": "10670d1bad6b4afd3dce9af61d22c8cd5eeded59",
      "tree": "d7485ed9e8f8ca9184f8dc87577865c58c317845",
      "parents": [
        "d1ee828f339ac8efe1f6d693f13ee9a871dc8fc5"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Jan 24 11:26:15 2012 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Jan 31 12:26:28 2012 -0600"
      },
      "message": "Add support for OS_* environment vars\n\nAdd the OS_* env variables to mirror the NOVA_* vars; example:\nsetting OS_USERNAME will override NOVA_USERNAME in the clients and\ntools, but if left unset it defaults to NOVA_USERNAME.\n\nAdds exercises/client-env.sh to test operation of command-line\nclients with only the OS_* variables set\n\nAddresses bug 897304, http://wiki.openstack.org/CLIAuth\n\nChange-Id: I72450153541072fe8026a82748cfcd1cf5ed31d8\n"
    },
    {
      "commit": "ce05e03213847da1220356e5d95adfde1bd3ae32",
      "tree": "bc844ddabbee3404c46635d63aa2b53e1c3a1363",
      "parents": [
        "d2be50c6e098bc2add116106f80845c364440558"
      ],
      "author": {
        "name": "Adam Gandelman",
        "email": "adamg@canonical.com",
        "time": "Mon Jan 30 14:43:14 2012 -0800"
      },
      "committer": {
        "name": "Adam Gandelman",
        "email": "adamg@canonical.com",
        "time": "Mon Jan 30 14:46:25 2012 -0800"
      },
      "message": "exercises: Multihost support for Glance client\n\nfloating_ips and volumes exercises both access Glance directly, but\nassume it is running locally.  To better accomodate exercising a\nmulti-host cloud, specify glance host via GLANCE_HOST setting which\ndefaults to HOST_IP to maintain current single-node functionality.\n\nChange-Id: Iad06044af031083afa477204d446ada5161ca521\n"
    },
    {
      "commit": "75bbd75d9189a380b254ffd2f89cbf5108e2efb0",
      "tree": "fade63a0e1ae5f6ecbc06dd7aaf710aa35e2414b",
      "parents": [
        "30439a6dc4b859d9687500128d00fd51a35d1cb4"
      ],
      "author": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Thu Jan 19 23:28:46 2012 +0000"
      },
      "committer": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Wed Jan 25 15:40:40 2012 +0000"
      },
      "message": "Allow euca-upload-bundle to work with devstack\n\n * modifies stack.sh to run nova-cert and nova-objectstore\n * adds exercises/bundle.sh to test for bundling\n * requires https://review.openstack.org/#change,3200\n\nChange-Id: I850891948fbdfdf5890225f94df755e5dbc733d0\n"
    },
    {
      "commit": "751c15243fff7a805031397e85d3dec6d3033aa3",
      "tree": "2b6c6ea0dea4d59c9d7b6d218547362a94e6d4b1",
      "parents": [
        "19721bc79d973bcbe7fb162e64fff85020b5b4fc"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Jan 10 15:34:34 2012 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Jan 19 14:49:08 2012 -0600"
      },
      "message": "Increase exercise robustness\n\n* increase some timeouts\n* tolerate existing security groups and rules\n* add optional DEFAULT_IMAGE_NAME to select the image to boot\n* fix image lists via glance\n\nChange-Id: I31ae743e602f69a2c9f872273273f542fc4afda3\n"
    },
    {
      "commit": "696ad331a4af3a0d259b1db7eed5ef6b691ba045",
      "tree": "f5653d682560ab7c5f6ba7cac01fe27e96fc1e33",
      "parents": [
        "ea4a53da619c8ce7e65141a17b68ce314e729e60"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Jan 10 15:34:34 2012 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Jan 12 16:32:24 2012 -0600"
      },
      "message": "Add some additional floating ip pool testing\n\nChange-Id: I62cd6b43e3250dc28d66dc84d3759f47e81ff134\n"
    },
    {
      "commit": "4b40c4d95fafbf48c79010956abf9069985ee0c7",
      "tree": "f6a10ba0d76eded35ef32be3f1cfb3a220cd4134",
      "parents": [
        "c384424e94f7d4a84670630860bf1848a0563342",
        "1d6e0e196e6f2ee5fef7c5cf2571e4b3ab947300"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Tue Jan 03 18:32:04 2012 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Tue Jan 03 18:32:04 2012 +0000"
      },
      "message": "Merge \"Use DEFAULT_INSTANCE_TYPE in exercises\""
    },
    {
      "commit": "c384424e94f7d4a84670630860bf1848a0563342",
      "tree": "9a8faf2478482a21cfaeab2ed906c6d6726f3598",
      "parents": [
        "34694f156874e10199e29d4d92f35626b68d88d2"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Dec 30 14:27:02 2011 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Dec 30 14:32:42 2011 -0600"
      },
      "message": "exercises/euca.sh timing fixes\n\nAdjust timing in the script for testing on slower systems,\nsuch as VMs on laptops.\n\nChange-Id: I657fe54c7a4b75169b84ae1af37c88e2941e918a\n"
    },
    {
      "commit": "1d6e0e196e6f2ee5fef7c5cf2571e4b3ab947300",
      "tree": "8ab5fc51826ab5da552b57227501e7df86acb74e",
      "parents": [
        "c1b2354a88f9d14c6773fe9f9fa06f918e37d8f8"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Dec 23 12:45:13 2011 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Dec 28 14:20:47 2011 -0600"
      },
      "message": "Use DEFAULT_INSTANCE_TYPE in exercises\n\nChange-Id: I5a98a3a4e8057f613a94054b08ff5439f1ccf7cd\n"
    },
    {
      "commit": "2fcb3a85df060a458f0fc2e0828d9373a1ebc974",
      "tree": "c3e333d0c853807c461649e0fdd621f83c646522",
      "parents": [
        "c6b0c0978583dfb8eb46884b1f5eaeb255803abc",
        "abda427a10873a6d11026f767d53d2cecf967d1c"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Fri Dec 23 17:56:15 2011 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Fri Dec 23 17:56:15 2011 +0000"
      },
      "message": "Merge \"Improve euca exercise to use floating ips and secgroups.  This ensures that the full instance lifecycle gets \u0027worked.\u0027\""
    },
    {
      "commit": "abda427a10873a6d11026f767d53d2cecf967d1c",
      "tree": "e132c2f13e36f271938e005ef1d92f83ed3a3ab6",
      "parents": [
        "e0d6cd1e920033fc889ae01b102885dc2eb2cdd0"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Fri Dec 16 20:16:20 2011 +0000"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Fri Dec 16 20:36:51 2011 +0000"
      },
      "message": "Improve euca exercise to use floating ips and secgroups.  This ensures that the full instance lifecycle gets \u0027worked.\u0027\n\nChange-Id: Ibf22054ae3fb864242ff3df2b8066985a43803d7\n"
    },
    {
      "commit": "a8dda1709f4cb6b64ea9664bf22aa88ae691a047",
      "tree": "7cc4209f6f90dd592de6777d244c3c571a66a78e",
      "parents": [
        "e0d6cd1e920033fc889ae01b102885dc2eb2cdd0"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Dec 16 12:22:02 2011 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Dec 16 14:36:35 2011 -0600"
      },
      "message": "Add volume.sh exercise\n\nChange-Id: Ic339c34c85493d21f9fbf5280bb5ff1660644f98\n"
    },
    {
      "commit": "9c7c9083a4866e4c225fe8dac7d17054c640ba03",
      "tree": "7bc2940040995ce70d024ed5f8db4e01ad6a9eaf",
      "parents": [
        "83a59d26a7ad5c31136e0b2974e0acd1d95f764d"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Nov 23 10:10:53 2011 -0800"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Nov 23 11:26:39 2011 -0800"
      },
      "message": "initial devstack + essex\n\n* update horizon apache config\n* updates apts for horizon\n* better logging for horizon\n* keystone conf settings\n* only add swift endpoint if it is enabled\n* new nova paste\n\nChange-Id: I1edacbe5d8adc4bd5265d36abcaf01ce5490aefd\n"
    },
    {
      "commit": "38df1228decc04dfcce990eb996322b2ade5dedb",
      "tree": "f0bad789a79a5b79aa3fe7d888b0c525c7be7e24",
      "parents": [
        "f6c09edf25a6da0fcdb7c2997dbddfaf90b33e21"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sun Nov 20 09:55:44 2011 -0800"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sun Nov 20 09:55:44 2011 -0800"
      },
      "message": "revive working with subset of services\n\nChange-Id: I645c5df457a2ac2c997ac32720d53cacc0fa109b\n"
    },
    {
      "commit": "f6c09edf25a6da0fcdb7c2997dbddfaf90b33e21",
      "tree": "df4caffd52b9b5d19bc5d3e79d257f0924ad4810",
      "parents": [
        "a208dcc34077c96f5f4ab580c5c462f52bf114e1"
      ],
      "author": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Wed Nov 16 16:38:24 2011 -0800"
      },
      "committer": {
        "name": "James E. Blair",
        "email": "james.blair@rackspace.com",
        "time": "Thu Nov 17 15:14:43 2011 -0800"
      },
      "message": "pause is admin-api, we shouldn\u0027t be testing it\n\nChange-Id: Ia7b9d2f06aecb67f3e0c2f12687f18e3e386da3f\n"
    },
    {
      "commit": "b74b74a2b321adfc976590a58685b6a506e5db64",
      "tree": "acd993dbfb69930f0f494d069c5a089d0d5a6a18",
      "parents": [
        "16b6efab4c36456beb3c56157c4d854cafb4a87d"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Nov 10 11:47:34 2011 -0800"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Nov 10 11:47:34 2011 -0800"
      },
      "message": "permissions\n"
    },
    {
      "commit": "16b6efab4c36456beb3c56157c4d854cafb4a87d",
      "tree": "08820d11f8c76fea3bb75e2211394c0ce028df27",
      "parents": [
        "662e1b0333a88ed994aae56f54b9cb3e75a3ecb9",
        "aa4aa2ecb8508c12c64d1dd9fcc77e98133c0817"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Nov 10 11:46:18 2011 -0800"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Nov 10 11:46:18 2011 -0800"
      },
      "message": "merge origin/master\n"
    },
    {
      "commit": "3ef87eedce4cde0c23e2dd310772eeef2fb39fb7",
      "tree": "87ba3cb17815c93a8278d12abc7a32a518e2f386",
      "parents": [
        "9a3066f9fd4efae4ec838a673fe1517554e0e531",
        "3e6ec236f01abaf80fe7dc8db73ecbfdf3532e89"
      ],
      "author": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Sat Nov 05 11:05:56 2011 -0400"
      },
      "committer": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Sat Nov 05 11:05:56 2011 -0400"
      },
      "message": "Merge branch \u0027toddexercises\u0027 of github.com:cloudbuilders/devstack into toddexercises\n"
    },
    {
      "commit": "9a3066f9fd4efae4ec838a673fe1517554e0e531",
      "tree": "e86f8c291b881bcf487c5635c7dec8cda55dae42",
      "parents": [
        "0367cf1585eb7359a6bc741aab06dc3a3750575a"
      ],
      "author": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Sat Nov 05 11:02:34 2011 -0400"
      },
      "committer": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Sat Nov 05 11:02:34 2011 -0400"
      },
      "message": "RUNNING_TIMEOUT \u003d BOOT_TIMEOUT + ACTIVE_TIMEOUT\n"
    },
    {
      "commit": "3e6ec236f01abaf80fe7dc8db73ecbfdf3532e89",
      "tree": "8a44d35eb28aedc1cd2086a476d09f5f835e63ee",
      "parents": [
        "9e9132ddaf77a4b858352e827da29ce214a6848d"
      ],
      "author": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Fri Nov 04 12:23:35 2011 -0400"
      },
      "committer": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Fri Nov 04 12:23:35 2011 -0400"
      },
      "message": "Pull in swift testing from master.\n"
    },
    {
      "commit": "9e9132ddaf77a4b858352e827da29ce214a6848d",
      "tree": "589dc5d737d8c4d6b68a99b50d2e6ba99f756f4e",
      "parents": [
        "2599b3165ad35c9c62b5bfa543c03f2a3aecb4cd"
      ],
      "author": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Fri Nov 04 12:09:54 2011 -0400"
      },
      "committer": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Fri Nov 04 12:09:54 2011 -0400"
      },
      "message": "Exercises: euca bugfix, output cleanup.\n\nDon\u0027t log stderr per-exercise, because stdout is barfy anyway.\nMove the state of skip/pass/fail to the end of the exercise run.\n"
    },
    {
      "commit": "2599b3165ad35c9c62b5bfa543c03f2a3aecb4cd",
      "tree": "5087db7234cb76b7949dac952a5d3a318570348a",
      "parents": [
        "787af01bddbaace8f83c65c273da6a62a9658a06"
      ],
      "author": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Fri Nov 04 10:31:37 2011 -0400"
      },
      "committer": {
        "name": "Todd Willey",
        "email": "xtoddx@gmail.com",
        "time": "Fri Nov 04 10:31:37 2011 -0400"
      },
      "message": "Wrap exercises with master script, with logs, and move common variables.\n"
    },
    {
      "commit": "787af01bddbaace8f83c65c273da6a62a9658a06",
      "tree": "60423bb0e14d06ad466179191bc8ba1838f571d9",
      "parents": [
        "9f1863450e71e19bb8ff42e9a7c182c3f5f67c3d"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Tue Nov 01 16:44:19 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Tue Nov 01 16:44:19 2011 -0700"
      },
      "message": "fix sourcing of openrc\n"
    },
    {
      "commit": "9f1863450e71e19bb8ff42e9a7c182c3f5f67c3d",
      "tree": "527de7ed7aae2f460bbaa17450c14e2a8b4b05f9",
      "parents": [
        "f6705491868494fb3b78139dad23f35cd99f12c7"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Tue Nov 01 16:05:40 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Tue Nov 01 16:05:40 2011 -0700"
      },
      "message": "docs\n"
    },
    {
      "commit": "f6705491868494fb3b78139dad23f35cd99f12c7",
      "tree": "be32345ae99cf7ab29094008e0b7e8b01afc266d",
      "parents": [
        "f0dca55a29048a6183c103e47bee667c5e3a76e3"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Tue Nov 01 16:04:14 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Tue Nov 01 16:04:14 2011 -0700"
      },
      "message": "move from exercise.sh to exercises/..\n"
    }
  ]
}
