)]}'
{
  "log": [
    {
      "commit": "5c206c2b7d3a983094daa9b6f383d72e396caf55",
      "tree": "e572aca7bd4203cb0297721e32600581e72bff61",
      "parents": [
        "5acf159c72fad931031d9768ae02575240a5ede9"
      ],
      "author": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Sat Aug 02 20:32:31 2014 -0400"
      },
      "committer": {
        "name": "Steve Martinelli",
        "email": "stevemar@ca.ibm.com",
        "time": "Mon Aug 04 17:00:18 2014 -0400"
      },
      "message": "Migrate from using glance image-list to openstackclient\n\nModify instance of `glance image-list` to `openstack image list`,\nin an effort to migrate all commands to unified CLI.\n\nChange-Id: Ieef661d209606e088fbf6a3a394f9a6577667618\n"
    },
    {
      "commit": "b875d01cdf11683febf0fb4919c116eb8db08022",
      "tree": "2236b082e78d85191973885a2cf08054dda414e5",
      "parents": [
        "911cc586ad8f8a7c736516f2a3d9a9ce8571976b"
      ],
      "author": {
        "name": "Adam Gandelman",
        "email": "adamg@ubuntu.com",
        "time": "Mon Mar 17 19:47:14 2014 -0700"
      },
      "committer": {
        "name": "Adam Gandelman",
        "email": "adamg@ubuntu.com",
        "time": "Mon Mar 17 19:52:02 2014 -0700"
      },
      "message": "Special casing for Ironic VIRT_DRIVER in exercises\n\nIronic on Devstack does not currently suppport security groups or\nanything volume related.  Add some special casing so exercises can\nbe run without error against the Ironic driver.\n\nChange-Id: I2a54d8cca06fc17894e74b4401af9423cef95635\n"
    },
    {
      "commit": "7d4c7e09b4882077471c3b2cb097c237c2016f96",
      "tree": "0a51ca06e74f9e4495fdb82ce929e7bd75f80bdc",
      "parents": [
        "3c78e080864c9b202132d8ce0e493933f3d2ab36"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Wed Mar 12 08:05:08 2014 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean.dague@samsung.com",
        "time": "Wed Mar 12 08:05:08 2014 -0400"
      },
      "message": "remove docker from devstack\n\nwith I1c9bea2fdeebc4199c4f7d8fca4580a6fb7fed5b nova removed\ndocker from it\u0027s driver tree.\n\nWe shouldn\u0027t have driver support inside of devstack that\u0027s not\npart of upstream projects (this has been a line we\u0027ve been\npretty clear on with Neutron drivers in the past).\n\nRemove docker driver accordingly.\n\nChange-Id: Ib91d415ea1616d99a5c5e7bc3b9015392fda5847\n"
    },
    {
      "commit": "9b3602ccf64f1d690a0a3d4adff987a5a12594b1",
      "tree": "aebfeefb94ff51636dad38a53d1b13830d06cc60",
      "parents": [
        "2cf03d246998acf5c387a5855c36b25a1b791cb8"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Fri Feb 28 13:52:29 2014 -0500"
      },
      "committer": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Mon Mar 03 09:26:49 2014 -0500"
      },
      "message": "Fix intermittent error in exercises/floating_ips.sh\n\nEvery once in a while I see this error running floating_ips.sh:\n\n/devstack/exercises/floating_ips.sh:184:ping_check\n/devstack/functions:356:_ping_check_neutron\n/devstack/lib/neutron:904:die\n[ERROR] /devstack/lib/neutron:904 [Fail] Could ping server\n\nI think the problem is that it immediately tries to ping right\nafter the icmp rule is deleted.  Add a timeout and check so we\nat least wait one second.\n\nChange-Id: I753ec257fa12f6d2ddff1a5b1909e32d8995e173\n"
    },
    {
      "commit": "e2907b4838230940a8ff1735feffd80acf13bdab",
      "tree": "9b1f0d9eabeb00e0d12e9973d2fe491dbf8e2eef",
      "parents": [
        "1755f689e807cd73b7bb2c67ac0531afbc8c6448"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Feb 26 17:35:37 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Feb 27 15:37:11 2014 -0600"
      },
      "message": "Fix Neutron enabled check\n\n* Remove the check for neutron enabled on a block of variable settings, there\n  is no conflict and serves no purpose.\n* Also floating_ips.sh and volume.sh needed to properly source lib/neutron\n  for do ping_check() to work properly.\n\nThe current error in check-devstack-dsvm-neutron is not related to this fix.\n\nChange-Id: I1c458aaa787ffb98c945aefc3afa80c6861a405f\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": "a16c8210244a553d10250080294c7d4c65734375",
      "tree": "59dd4f4487b88c3a33c98df22d6c433af3618f03",
      "parents": [
        "1d8abb95b9cfc6fa014dae539ace60af93ed175b"
      ],
      "author": {
        "name": "Kiall Mac Innes",
        "email": "kiall@hp.com",
        "time": "Sun Jan 12 19:35:43 2014 +0000"
      },
      "committer": {
        "name": "Kiall Mac Innes",
        "email": "kiall@hp.com",
        "time": "Sun Jan 12 19:51:33 2014 +0000"
      },
      "message": "Skip Nova exercises if Nova is not enabled\n\nThis allows for ./exercises.sh to complete sucessfully when nova is not\nenabled / installed.\n\nChange-Id: If969e14f5106c15007146e8fad1da27d131828c8\n"
    },
    {
      "commit": "526b79f98825963c5fbb157bca5a54750bd045af",
      "tree": "755fb1bd056253d08300d38f8b961b3cd1795366",
      "parents": [
        "3422668612f667ef3b8b04999562e0206dd07424"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Nov 22 11:30:44 2013 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Dec 05 12:25:26 2013 -0600"
      },
      "message": "Eradicate last of underscores in options\n\nThe --ip_range in stack.sh remains due to nova-manage needing to be fixed.\n\n(Rebased 05Dec2013)\n\nChange-Id: Ic0f93d41b6edfdc5deb82ae820e2c0c5a8bce24e\n"
    },
    {
      "commit": "23178a997a3b0abd1922f356e572e2933f454dc1",
      "tree": "978877ea0582f1e1f46fe48664571dab725a577f",
      "parents": [
        "80c3ea52ed1caec16e5c6c6beecd434225afbd97"
      ],
      "author": {
        "name": "DennyZhang",
        "email": "denny@unitedstack.com",
        "time": "Tue Oct 22 17:07:32 2013 -0500"
      },
      "committer": {
        "name": "DennyZhang",
        "email": "denny@unitedstack.com",
        "time": "Tue Oct 22 17:12:18 2013 -0500"
      },
      "message": "add assertions for blind grep\n\nblind grep is error-prone.\nAdd assertions for errors we can not handle\n\nChange-Id: Ibe19085545ecc848498506e8b8ee14e71825b273\n"
    },
    {
      "commit": "922c8ae6804304841167fcca662726e1e26b556a",
      "tree": "63f613b8c9262c5c2cb47d7eb57f3aedfcd933ff",
      "parents": [
        "101b4248428b4c3d7757e15ff4e19d3b4f85a51f"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Tue Oct 22 10:06:06 2013 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Tue Oct 22 13:02:29 2013 -0400"
      },
      "message": "clean up whitespace issues on exercises and friends\n\nChange-Id: I812a73e46ddd4d5fed4d304d9ef92c1de243f497\n"
    },
    {
      "commit": "2aa2a89cdb9071cea919116e283c16ac9dd841d6",
      "tree": "88c156a62dc7b594499556dab11083b90425f886",
      "parents": [
        "415360b23157caac28899fe0e02f47f0e4532ca2"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sun Aug 04 19:53:19 2013 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Aug 28 22:36:48 2013 -0500"
      },
      "message": "Add support for Docker as Nova hypervisor\n\n* Add basic support for hypervisor plugins in lib/nova_plugins\n* Add lib/nova_plugins/hypervisor-docker to use Docker as a Nova\n  hypervisor.\n* Add tools/install_docker.sh to install the Docker daemon and\n  registry container, download base image and import\n* Configure Nova to use docker plugin\n* Add docker exercise and skip unsupported ones\n\nNova blueprint: new-hypervisor-docker\n\nChange-Id: I9e7065b562dce2ce853def583ab1165886612227\n"
    },
    {
      "commit": "6769b166b10272947db77c3f9bfb0d115e8d0a2d",
      "tree": "62b1a79531a3eb49beabe7de7ae199c4ca91eaab",
      "parents": [
        "55181d2cfba5dd6bbbde42bb964782e8c2b8ee50"
      ],
      "author": {
        "name": "Nachi Ueno",
        "email": "nachi@ntti3.com",
        "time": "Mon Aug 12 18:18:56 2013 -0700"
      },
      "committer": {
        "name": "Nachi Ueno",
        "email": "nachi@ntti3.com",
        "time": "Tue Aug 13 17:08:47 2013 -0700"
      },
      "message": "Added functions for get a ip on an instance\n\nThe cause of some gating failure looks like\nbecause of getting ip address on instance.\nHowever current exercise didn\u0027t log the return value.\nIn this commit, we add get_instance_ip function with\nerror hanlding support, and apply it on the execise.\n\nChange-Id: I8e17ba68093faafe58a98eb780a032368eea38aa\n"
    },
    {
      "commit": "c62c2b9b6617c731c7979d490a1d2e7a048c1cf7",
      "tree": "c1b75411b4affa7cf7803fa9ab4a45c679536583",
      "parents": [
        "c41a0598646aad3520861c185c5df370f95301a7"
      ],
      "author": {
        "name": "Chris Behrens",
        "email": "cbehrens@codestud.com",
        "time": "Wed Jul 24 03:56:13 2013 -0700"
      },
      "committer": {
        "name": "Chris Behrens",
        "email": "cbehrens@codestud.com",
        "time": "Fri Jul 26 11:11:25 2013 -0700"
      },
      "message": "Fix various things when n-cell is enabled\n\n1) Use the newer cell_type configuration option instead of overriding\nthe compute_api_class.\n\n2) A nova-cells service is started for both the API cell (region) and\nthe compute cell (child).  The screen names were both \u0027n-cell\u0027 which\ncaused both services to log to the same log file.  The screen names have\nbeen changed to n-cell-region and n-cell-child.\n\n3) Security groups are not supported with cells.  Multiple exercises are\npatched to use the \u0027default\u0027 security group instead of creating a new\none.  Additionally, if one uses the \u0027default\u0027 security group, do not try\nto delete it, as one can never delete the default.\n\n4) Disable the floating_ips and aggregates exercises when n-cell is\nenabled, as they are not supported by cells.\n\n5) Related to #4, disable the floating_ips tests within euca.sh\n\n6) Update the README.md.  No services need to be disabled, and one only\nneeds to enable the n-cell service.\n\nChange-Id: I9782d1e3cda3c9dd3daefa15c043f5b06473cb87\n"
    },
    {
      "commit": "b05c876994183b6a1d53dfbdcea2ca4a7743035f",
      "tree": "e5361481fe1ea3f96da5c9139034530bb35706a7",
      "parents": [
        "0a03806e281d1f197e54d48318e4a7bba3eab77c"
      ],
      "author": {
        "name": "Mark McClain",
        "email": "mark.mcclain@dreamhost.com",
        "time": "Sat Jul 06 23:29:39 2013 -0400"
      },
      "committer": {
        "name": "Mark McClain",
        "email": "mark.mcclain@dreamhost.com",
        "time": "Sun Jul 07 00:15:11 2013 -0400"
      },
      "message": "update for name change to Neutron\n\nNote: Nova and Horizon are not updated until those projects have\nmigrated.\n\nChange-Id: I256ef20e7caadd9c96e6dd908c5d8b69ca5c4aeb\n"
    },
    {
      "commit": "4640026cc1077232f609caf24c42a7dd477e3f68",
      "tree": "279f6e026ce6850a07f699640939c6922f5c6176",
      "parents": [
        "b3e8ea847feaf63fe4a46c2a9a417f8a3f760938"
      ],
      "author": {
        "name": "Joe Gordon",
        "email": "joe.gordon0@gmail.com",
        "time": "Sun Jun 30 04:32:27 2013 -0700"
      },
      "committer": {
        "name": "Joe Gordon",
        "email": "joe.gordon0@gmail.com",
        "time": "Sun Jun 30 04:32:27 2013 -0700"
      },
      "message": "Fix spelling mistakes\n\ngit ls-files | misspellings -f -\nSource: https://github.com/lyda/misspell-check\n\nChange-Id: I7d63578734ca5cc1ec865a7d024c1a013d1ada87\n"
    },
    {
      "commit": "640f1e4c8d0da6de70e358f5bad28fb1b0306e0d",
      "tree": "f4be5a40ea6d6789a4f2d38d20915d4339848ccc",
      "parents": [
        "a2ae90fa026ab3bd9d12b6696b08a999100799e4"
      ],
      "author": {
        "name": "Aaron Rosen",
        "email": "arosen@nicira.com",
        "time": "Tue Mar 26 16:52:53 2013 -0700"
      },
      "committer": {
        "name": "Aaron Rosen",
        "email": "arosen@nicira.com",
        "time": "Tue Mar 26 22:39:11 2013 -0700"
      },
      "message": "Change default PUBLIC_NETWORK_NAME/DEFAULT_FLOATING_POOL name\n\nThis patch changes the default network name/floating pool from nova\nto pubic as the name public makes more sense than nova for a public\nnetwork.\n\nChange-Id: I4153750c08d1510dbad3051681e8c142a79fe1a1\n"
    },
    {
      "commit": "07115eb5c06a7f5a63bfacdf33ded466c8f2e2c9",
      "tree": "fb6f2bedaafb7bb357f7653cf68a083c2888c1ee",
      "parents": [
        "921f2dab624c045d2be321d986b4769c7fb7de99"
      ],
      "author": {
        "name": "Nachi Ueno",
        "email": "nachi@nttmcl.com",
        "time": "Tue Feb 26 12:38:18 2013 -0800"
      },
      "committer": {
        "name": "Nachi Ueno",
        "email": "nachi@nttmcl.com",
        "time": "Thu Feb 28 11:54:24 2013 -0800"
      },
      "message": "Refactor error logging\n\nIt is hard to grep errors in current log. so in this patch,\nI\u0027m updating die function which also writes log for\nscreen_log_dir/error.log.\nIn future, we may categolize negative fault by using\nthis error.log.\n\nChange-Id: I70a8cfe67ed408284f5c88c762c6bb8acb8ecdb2\n"
    },
    {
      "commit": "da85cdadd9a2331a28d4913b878e18c9c5abaccf",
      "tree": "09436a01223c9cc2693d59c96c79fb476e1e77e6",
      "parents": [
        "7bbeb2857c285d3feebcd21456c7e3fdf3264fa6"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Feb 15 11:07:14 2013 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Feb 15 12:34:33 2013 -0600"
      },
      "message": "Exercise cleanup\n\n* Make common steps consistent\n* Make comments consistent\n\naggregates.sh\nboot_from_volume.sh\nclient-args.sh\nclient-env.sh\neuca.sh\nfloating_ips.sh\nsec_groups.sh\nswift.sh\nvolumes.sh\n\nChange-Id: Ib93dcdfdead93c259e3cd184fbc5ccc0a4a87c9a\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "1de18c62508c05ecf79642b083046c114887f37e",
      "tree": "34ae0a4b7c1f6e491060bedf6a828e4e10dbce0d",
      "parents": [
        "a06ac1cb2d824ff07406c85602b094c194500b67"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Nov 01 14:19:18 2011 -0500"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Nov 01 14:22:26 2011 -0500"
      },
      "message": "Changes to make exercise.sh work with xen\n"
    },
    {
      "commit": "c2e05b6a776495aa63b21653ebd277cdda119aa2",
      "tree": "3a3b58fa28c5cdc79df6d7233b8f48b582c31214",
      "parents": [
        "02a08696154153b1fc88b52aacfba4a9d53f65c9"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Mon Oct 31 19:22:18 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Mon Oct 31 19:31:30 2011 -0700"
      },
      "message": "typos\n"
    },
    {
      "commit": "70d2b2c2249eada14bde3beb23fe9da8d5c449dd",
      "tree": "4d5162cfd4b81de169d9bf7f1a391fa59a651057",
      "parents": [
        "981f19487779e5931e0d24d3cd432a5f128c8a79"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Mon Oct 31 15:42:51 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Mon Oct 31 15:43:05 2011 -0700"
      },
      "message": "use rackspace apt mirrors\n"
    },
    {
      "commit": "79e807a14506f28f319470f03a3aca270b15ba78",
      "tree": "f7be576e0cd6cedee98502ff69bd93fbb2afb054",
      "parents": [
        "3a0e4902883ed9ca7132c612561d7e7df9ec31d2"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Mon Oct 31 11:16:44 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Mon Oct 31 11:16:44 2011 -0700"
      },
      "message": "make exercise.sh timeouts configurable\n"
    },
    {
      "commit": "0c484feda47263cf1de5eaf034b39cb46a304d7c",
      "tree": "40f51a78996ebece165434afa3a2e91e7e6a6cec",
      "parents": [
        "a2710c518a83a0533460cce78a1b4066f6dbef3c"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Oct 27 14:10:47 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Oct 27 14:10:47 2011 -0700"
      },
      "message": "check that you can\u0027t hit the floating ip as well\n"
    },
    {
      "commit": "467135e20cbdd180c81bf27756e72fc778d7e50d",
      "tree": "be1001f9e6f509068b2f808e5a181afd8398ec46",
      "parents": [
        "293c2ef6333901b4bb960716bcb4635fa54cf67a"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Oct 27 14:06:33 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Oct 27 14:06:33 2011 -0700"
      },
      "message": "another attempt at pause/unpause\n"
    },
    {
      "commit": "093f3f558681cabba1b0b5bb1183c8adf9563ac3",
      "tree": "0b6b94440c4230deaf31fca9b1f4b1039fdf9fae",
      "parents": [
        "b7cc5bcbb44b1157cbcf61097084d6a178d01c73",
        "47bb211cadbf2383c9e03f02858731e57ee3c4d9"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Oct 27 12:15:24 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Thu Oct 27 12:15:24 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 into pause\n"
    },
    {
      "commit": "b7cc5bcbb44b1157cbcf61097084d6a178d01c73",
      "tree": "d7c5e4e07be75d8d24aa7df1da1487254a3c9f0b",
      "parents": [
        "70188b31054e2bad73b9fee5251d68009bfcb22c"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 22:11:31 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 22:11:31 2011 -0700"
      },
      "message": "test pause/unpause using ping\n"
    },
    {
      "commit": "53d4a1db2b27ef8549c42d36cda2255bea6576a5",
      "tree": "c63d3a866782a66a67bd6e19a45dfae9fe098ef1",
      "parents": [
        "ac2e166e895eb52286e47ee51a95f0e3d8491932"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 21:46:47 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 21:46:47 2011 -0700"
      },
      "message": "missed removing this ping\n"
    },
    {
      "commit": "ac2e166e895eb52286e47ee51a95f0e3d8491932",
      "tree": "494cf78c7ab8dd9de5854e958becdbd918b62d14",
      "parents": [
        "5a774839d73d4d9193e21acc71137f5397962317"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 21:39:56 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 21:39:56 2011 -0700"
      },
      "message": "grammer\n"
    },
    {
      "commit": "5a774839d73d4d9193e21acc71137f5397962317",
      "tree": "5608074f34ce91daeb3242f9597b562554aa1c3d",
      "parents": [
        "ab8dbce751c3a514b71df89c31acf4c9bbdf7671"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 21:30:02 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 21:30:02 2011 -0700"
      },
      "message": "more converting sleep -\u003e timeouts\n"
    },
    {
      "commit": "ab8dbce751c3a514b71df89c31acf4c9bbdf7671",
      "tree": "ca124185cb62d67e8680e28bad5cac9e5e4a2682",
      "parents": [
        "ad21d1a78e83ea8db1c87b65e646215d9cce8198"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 21:23:20 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Oct 26 21:23:20 2011 -0700"
      },
      "message": "play with how ping tests/sleep works in exercise\n"
    },
    {
      "commit": "56a505fc2d3b95c310f2330b4e4d45d8dfe8f0e1",
      "tree": "4e9f7808db7d6dad8d4b9a3832359c2572f40596",
      "parents": [
        "c99d4ad156e4a723d69877cae452e6f7c56339fc"
      ],
      "author": {
        "name": "Justin Shepherd",
        "email": "galstrom21@gmail.com",
        "time": "Wed Oct 26 10:45:02 2011 -0500"
      },
      "committer": {
        "name": "Justin Shepherd",
        "email": "galstrom21@gmail.com",
        "time": "Wed Oct 26 10:45:02 2011 -0500"
      },
      "message": "bug fix.. resulted in following error message: \r\n\r\n./exercise.sh: line 96: [: missing `]\u0027"
    },
    {
      "commit": "9d8e8cf1eeedffdb0678e7760f5cbbda8bcab982",
      "tree": "126a25538067fb96879b577d7a6c29a0c801336b",
      "parents": [
        "70506b1b74d0260c2aec37879e7d7d9f9d398a6d"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Oct 25 00:34:35 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Oct 25 00:34:35 2011 -0700"
      },
      "message": "association seems to take a bit longer on multi host configs\n"
    },
    {
      "commit": "8ecd2948ad7a4f1dad0e31ff48729a0c2695cc7e",
      "tree": "4d9f4807b6f3716a3c69d885343fc327c865e1cc",
      "parents": [
        "e959d83325529f9833ffe0bcca22f2e2d96a0951"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Mon Oct 24 22:58:14 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Mon Oct 24 22:58:14 2011 -0700"
      },
      "message": "only attempt to ping private ip for single node deployments\n"
    },
    {
      "commit": "f56e395d8216c7e94486ad3df3eb6377ebb5a7b1",
      "tree": "79121a4cc6feee9e5ad217f1e21dea8a62bcf8b5",
      "parents": [
        "23867b738b0964f1f982473cf8a343735b2314c6"
      ],
      "author": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Mon Oct 24 16:05:57 2011 -0700"
      },
      "committer": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Mon Oct 24 16:31:19 2011 -0700"
      },
      "message": "Make ec2 credentials work properly\n"
    },
    {
      "commit": "e61f3185cea5eeb4b873784ff74300b4c76d3c81",
      "tree": "f0ba8734c5dd03a13bd9b4e22f008251e795fc0f",
      "parents": [
        "f75d848ececdd59a1dcb240cf7956598366b9621"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Mon Oct 24 13:43:04 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Mon Oct 24 13:43:04 2011 -0700"
      },
      "message": "use HOST_IP as in stack.sh\n"
    },
    {
      "commit": "6fc71019c9db6137b6004b85c761500d36cd6409",
      "tree": "280faa8fc7b6e2782896ea64d7f45c398ad323fb",
      "parents": [
        "540b98837148c19ceac2d4e76d573604ae6f0815"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Mon Oct 24 11:29:08 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Mon Oct 24 11:29:08 2011 -0700"
      },
      "message": "documentation on exercise\n"
    },
    {
      "commit": "d4ddf3da2d213ce860db1e45fb9d935fd417d31a",
      "tree": "7370f1e969ef40b7608b54fe14beb399d049d25b",
      "parents": [
        "6ab10d46a874765f7c69366a5473ac6a42a92556",
        "637475815b4e7a54d4853ab5dfb96cd76c5839f5"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Thu Oct 20 11:37:53 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Thu Oct 20 11:37:53 2011 -0700"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027 into openrc\n\nConflicts:\n\texercise.sh\n"
    },
    {
      "commit": "6ab10d46a874765f7c69366a5473ac6a42a92556",
      "tree": "a1f759375410a60e26308e5f50a74735dd466b5a",
      "parents": [
        "148b13ac8860dcf22c8a3a24fdb28593aaea0610"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Thu Oct 20 10:24:50 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Thu Oct 20 10:24:50 2011 -0700"
      },
      "message": "add an openrc file so that users can easily use the client\n"
    },
    {
      "commit": "9b3536714a45307577e24dc7bf67371989f7e9dd",
      "tree": "ef0fa6c5539b23e3ba5b263d5d96355c7f0e52e3",
      "parents": [
        "148b13ac8860dcf22c8a3a24fdb28593aaea0610"
      ],
      "author": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Thu Oct 20 10:07:10 2011 -0700"
      },
      "committer": {
        "name": "Vishvananda Ishaya",
        "email": "vishvananda@gmail.com",
        "time": "Thu Oct 20 10:08:20 2011 -0700"
      },
      "message": "fix whitespace\n"
    },
    {
      "commit": "583bad0b14b47b8933bb417acd8893bdd4f10baa",
      "tree": "f0f256e6d48fecc096594c5143bfabb597276363",
      "parents": [
        "20a2caecfdce0969ab932511ef97cb8109d4e5c0"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Oct 18 08:22:30 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Oct 18 08:22:30 2011 -0700"
      },
      "message": "minor tweaks - source stackrc/localrc for excercise.sh.  Also, fix typo in build_lxc.sh\n"
    },
    {
      "commit": "20a2caecfdce0969ab932511ef97cb8109d4e5c0",
      "tree": "c665699df27e58100708ebe8189d3157c282677b",
      "parents": [
        "028cad16442924a4457dcbb1a12ec9117934218d"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Mon Oct 17 16:02:24 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Mon Oct 17 16:02:24 2011 -0700"
      },
      "message": "updates to exercise.sh to use some of the newer apis\n"
    },
    {
      "commit": "da89268c9272e5e649d7d2332c86bf2fe68f57ee",
      "tree": "cbb3b25a5ae70881dee1c46c2cce7b4348e93895",
      "parents": [
        "d888e1cdcb7eadf6c6b3634631400a4fe4c97769"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 20:14:07 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 20:14:07 2011 -0700"
      },
      "message": "update the ping to ping, wait 5 second, really ping\n"
    },
    {
      "commit": "d888e1cdcb7eadf6c6b3634631400a4fe4c97769",
      "tree": "d9c3d0ca4d2a0edcc28479f1b5754f9c5c139d05",
      "parents": [
        "4e8847cd6a8bb4dce9c3a7c66636d61ba51b519c"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 20:01:12 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 20:01:12 2011 -0700"
      },
      "message": "update exercise to boot a server, ping it, then destroy it\n"
    },
    {
      "commit": "4e8847cd6a8bb4dce9c3a7c66636d61ba51b519c",
      "tree": "220a3d6d100c32f1fbaf6429b3ca5f8efb442578",
      "parents": [
        "b9c77d69a6be25bca73780df671ab7538997e1ac"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 19:29:55 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 19:29:55 2011 -0700"
      },
      "message": "update glance command in exercise.sh\n"
    },
    {
      "commit": "b9c77d69a6be25bca73780df671ab7538997e1ac",
      "tree": "1bcf157c1c533571be5dd2227473335087bc07a1",
      "parents": [
        "f43307d408924977a2603d5e4f4aa30f41dfe4fc"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 18:37:25 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 18:37:25 2011 -0700"
      },
      "message": "add debug logging and notes about generating token\n"
    },
    {
      "commit": "f43307d408924977a2603d5e4f4aa30f41dfe4fc",
      "tree": "07620635f7bb426bc034be008f0b5d080eb65aa1",
      "parents": [
        "25369c914aa928de1ce67b9dec56aa5e0c2b782f"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 17:40:38 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Sat Oct 15 17:40:38 2011 -0700"
      },
      "message": "exercise.sh was using wrong variable to generate token\n"
    },
    {
      "commit": "94c889ac1587e2e5096c4472e4a4385dfd76d331",
      "tree": "e9a9c31495ebf5b4ad22408151c84fdc52447e7b",
      "parents": [
        "65bb9a93453fdc8f8ec54456f11618afb7c28b10"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Oct 11 18:07:48 2011 +0000"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Oct 11 18:07:48 2011 +0000"
      },
      "message": "make glance client work in exercise.sh\n"
    },
    {
      "commit": "0edde7d44f87ebf2f9a48f840a645162a8e4c2a4",
      "tree": "30c0bf68b450da4a8632351d7ecc15b3ddf123d6",
      "parents": [
        "1c598da60869680b834d6f93166f6c412026598a"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Thu Oct 06 07:10:24 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Thu Oct 06 07:10:24 2011 -0700"
      },
      "message": "use tenantName for NOVA_PROJECT_ID\n"
    },
    {
      "commit": "4387690ba5065fd40deeba43cc0404b536f72248",
      "tree": "3c0e1f09a98c9279b3d63e48f4efe7b9d012e5c0",
      "parents": [
        "34acee36998df95324f6bf9c1fd129546b13cfa8"
      ],
      "author": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Sep 27 00:29:28 2011 -0700"
      },
      "committer": {
        "name": "Anthony Young",
        "email": "sleepsonthefloor@gmail.com",
        "time": "Tue Sep 27 00:29:28 2011 -0700"
      },
      "message": "updates to excercise.sh to get partial working-ness\n"
    },
    {
      "commit": "593828d4de9acc35228943c130e9880348771de6",
      "tree": "dfde864b8a660b683451386461d928ee3da522ff",
      "parents": [
        "b19424fb51617abf55e21497ec9af23b2471e311"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Sep 14 22:44:50 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Sep 14 22:44:50 2011 -0700"
      },
      "message": "attempt to write a script that exercises nova cli\n"
    },
    {
      "commit": "b19424fb51617abf55e21497ec9af23b2471e311",
      "tree": "39e71bd05567846b5a279c0b59221398d49ddf07",
      "parents": [
        "b019151c6e992e7ac8087a83d142fc77c9a53495"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Sep 14 22:03:04 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Sep 14 22:03:04 2011 -0700"
      },
      "message": "add docs for exercise\n"
    },
    {
      "commit": "b019151c6e992e7ac8087a83d142fc77c9a53495",
      "tree": "17df110d034173c219359af8d76a931372230bd0",
      "parents": [
        "57133cd67e5636ba5348525a49ef64db353025f2"
      ],
      "author": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Sep 14 19:37:10 2011 -0700"
      },
      "committer": {
        "name": "Jesse Andrews",
        "email": "anotherjesse@gmail.com",
        "time": "Wed Sep 14 19:37:10 2011 -0700"
      },
      "message": "start to cli exercise\n"
    }
  ]
}
