)]}'
{
  "log": [
    {
      "commit": "fd794d59ee5abe5490b41940d0146744483466e4",
      "tree": "76b26c2fc2ca63d4d4192bd7fb61a6ab75946319",
      "parents": [
        "2f5dd1f53c2ada5e0a4d2990b6cfd3b3a12f8c12"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Wed Sep 03 14:30:43 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Wed Sep 03 14:30:43 2014 -0400"
      },
      "message": "Acceptance test that enumerates services.\n"
    },
    {
      "commit": "9d9fb10702ad1efd5a7570cfb96a96bd0e9d98e1",
      "tree": "71aa5a254041af2340cf7f7c11a04a2ac56e18b9",
      "parents": [
        "a87ee06ff02f989a03278cbe0fa77c0ea7e8e587"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Wed Sep 03 11:26:31 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Wed Sep 03 11:26:31 2014 -0400"
      },
      "message": "Update acceptance tests to match.\n"
    },
    {
      "commit": "c25ae6093a3e44cb4e427f11c31deef2397d4edb",
      "tree": "469152950238e252a2c211e29895c8daa95b1b9f",
      "parents": [
        "001cfa5ea395ceec1725a9edc5ae2e1095068f31"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:41:12 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:41:12 2014 -0400"
      },
      "message": "Missed an acceptance test tag.\n"
    },
    {
      "commit": "33c85f4e5e10d0e97cc6d39a1a5c3a92f415ea7c",
      "tree": "626e1a4e3155b2fabe9142e0c88a4c9f69bf0de7",
      "parents": [
        "4215691d2e2a6a603719fd7b073fc2d98343f83d"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:09:14 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:09:14 2014 -0400"
      },
      "message": "Acceptance test for creating authenticated clients.\n"
    },
    {
      "commit": "4215691d2e2a6a603719fd7b073fc2d98343f83d",
      "tree": "2575723426d8b6033cae660ed2a07dd6a193a407",
      "parents": [
        "e646c743a9b65908fc3350b3f4466411f2901223"
      ],
      "author": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:08:22 2014 -0400"
      },
      "committer": {
        "name": "Ash Wilson",
        "email": "smashwilson@gmail.com",
        "time": "Tue Sep 02 14:08:22 2014 -0400"
      },
      "message": "Acceptance test for token generation.\n"
    },
    {
      "commit": "4563a983a36d3871d41c1f73804edc24c9d5c6c3",
      "tree": "b025ad09e95cfc7f3160d89168cab023992c0a96",
      "parents": [
        "a19be191b54dd626766b1d60a9176a4207539964"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Thu Aug 28 16:20:40 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Aug 29 11:42:49 2014 -0500"
      },
      "message": "remove unused files from previous version; they are confusing people.\n"
    },
    {
      "commit": "5f4b5c2efd0a6ee4aa2387dc67f507526773ef74",
      "tree": "95fcba1cb94482f4fae887c7b8e90bc19191fcda",
      "parents": [
        "aab1fcd04f0de267e417cee2432a750d7d9134f9"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Aug 27 11:44:07 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Aug 27 11:44:07 2014 -0500"
      },
      "message": "move \u0027NewClient\u0027 function to \u0027utils\u0027 directory\n"
    },
    {
      "commit": "aab1fcd04f0de267e417cee2432a750d7d9134f9",
      "tree": "3c5ff537c52b3c3c2ebdfedc32afef1b5aca97a7",
      "parents": [
        "a7b7e8f1a830460f662c585a4eb0ebe8b4d02eda"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Aug 27 11:21:45 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Wed Aug 27 11:21:45 2014 -0500"
      },
      "message": "move \u0027NewClient\u0027 to function\n"
    },
    {
      "commit": "a8c3b81914b65ccd28831ae50f26b2f5b32ba8fd",
      "tree": "a949b65e1a0de40c4840f5e6e0cac6954ae79e35",
      "parents": [
        "6e8987896197834e4177d0d166c7e84ee779b4bb"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 22:02:31 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 22:15:16 2014 -0500"
      },
      "message": "don\u0027t use region environment variable\n"
    },
    {
      "commit": "6e8987896197834e4177d0d166c7e84ee779b4bb",
      "tree": "ba3fe9461acbd9b9ee7d1d4e39028191f3c03bc8",
      "parents": [
        "8cff5cfe80c5f86098973d86481306c9c0c6fd47"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 15:58:11 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Aug 19 15:58:11 2014 -0500"
      },
      "message": "change name of \u0027ClientOpts\u0027 to \u0027EndpointOpts\u0027\n"
    },
    {
      "commit": "5eb55b1786752df2dca13f372cdbec7dece91faa",
      "tree": "cf7e3dc999315e0731f9d8403aaba867470e542b",
      "parents": [
        "31cdefd69a09bab1a531c791c220dea01133f181"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Aug 18 14:48:23 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Aug 18 17:50:57 2014 -0500"
      },
      "message": "add versioning to identity; add generic \u0027client\u0027 function\n"
    },
    {
      "commit": "28cadc29c18969c75effaa65ae007242d3b886ae",
      "tree": "60fe212322bf2c6612951ddab9fe7f28fd23ab4c",
      "parents": [
        "43d8353e173ecc7cf1924c5502cc9ce69336c2a5"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 31 14:35:40 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 31 14:35:40 2014 -0700"
      },
      "message": "Refactor storage test to use new package\n"
    },
    {
      "commit": "43d8353e173ecc7cf1924c5502cc9ce69336c2a5",
      "tree": "b11a3b12388b314312b70dde7840a5e9bc87ff1b",
      "parents": [
        "ad023dcb5ba56bc186df0a91f75822c5a6be60e4"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 31 14:34:48 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 31 14:34:48 2014 -0700"
      },
      "message": "Refactor compute acceptance tests to prep for extensions tests\n"
    },
    {
      "commit": "ad023dcb5ba56bc186df0a91f75822c5a6be60e4",
      "tree": "70a121dec56053b26642c9518d8e56efdab4175c",
      "parents": [
        "62927459e0ae11cca5b35956256746e80b2d50b1",
        "2dd7d2f03fe637a7cf5c7b48eba8720744d3e24d"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jun 30 16:31:20 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jun 30 16:31:20 2014 -0700"
      },
      "message": "Merge branch \u0027master\u0027 into v0.2.0\n\nConflicts:\n\tacceptance/19-list-addresses-0.1.go\n\tservers.go\n\nI really need to do this more often.\n"
    },
    {
      "commit": "2dd7d2f03fe637a7cf5c7b48eba8720744d3e24d",
      "tree": "cd5355c929eca346624191fae8e8639c1fc984ea",
      "parents": [
        "40444fbc2b10960682b34e6822eb9179216e1ae1"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jun 30 16:18:08 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jun 30 16:18:08 2014 -0700"
      },
      "message": "go run-style acceptance tests now requires build tags\n"
    },
    {
      "commit": "9f90f77dc6c3aa792eaff9e7b584109bd2d6dc1a",
      "tree": "090b65bbd3a27e0ad4dd45df7e01e5087466e216",
      "parents": [
        "5fd033b507c3d8dc9268833fdad07d16d7ccfe56"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jun 30 15:25:32 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jun 30 15:25:32 2014 -0700"
      },
      "message": "Add negative test to acceptance test\n"
    },
    {
      "commit": "62927459e0ae11cca5b35956256746e80b2d50b1",
      "tree": "1393ea0ee5fad290388505e8fc08bd4c1a85c267",
      "parents": [
        "a7f7047e9f65cee7efc3189c5a9fb86fda90a328"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jun 30 15:18:28 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jun 30 15:18:28 2014 -0700"
      },
      "message": "Add negative test to 0.1.x acceptance test\n"
    },
    {
      "commit": "a7f7047e9f65cee7efc3189c5a9fb86fda90a328",
      "tree": "1363f12cf223cc860d3af7efa65e4186390c37c8",
      "parents": [
        "38c6ad0de422d940f5b4d5d5db211f0b646f2207",
        "bef727e64bc0fc68abbdc1749bb81fddba26d9e0"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Fri May 30 11:15:28 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Fri May 30 11:15:28 2014 -0700"
      },
      "message": "Merge pull request #160 from jrperritt/cf-refactor\n\nCf refactor.\r\n\r\nI\u0027m making a command decision to merge this PR.  It\u0027s baked long enough, and people are wanting to use it.  The only issues were documentation related (if memory serves), which is not going to break the success of the project.  We\u0027ll just have to chalk it up to technical debt and move on."
    },
    {
      "commit": "38c6ad0de422d940f5b4d5d5db211f0b646f2207",
      "tree": "6eb433fec88de4d834a5af39db11aa124f2201a2",
      "parents": [
        "808bb63f2c790bb48c6e63a8abfb467a75d8d552"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue May 06 18:09:46 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue May 06 18:09:46 2014 -0700"
      },
      "message": "Complete Flavors sub-API.\n"
    },
    {
      "commit": "eb57564524a08db36ffcd7e992fb2bd988d99815",
      "tree": "16b99917c20a31a182c0f8aff6c36ed737abd47e",
      "parents": [
        "c19adea8edcf7fb6bb683961e5b66c3894958822"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Thu Apr 24 15:16:31 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Thu Apr 24 15:16:31 2014 -0500"
      },
      "message": "change from \u0027Get\u0027 to \u0027Extract\u0027; decrease dependence on perigee\n"
    },
    {
      "commit": "b6b1d020b419d991cb506242f756a2567165fdd4",
      "tree": "b06f0e4296b8d024b923b2ea0350b18be8bb514c",
      "parents": [
        "30558646e058fd5cccc2d153d74fbb7e523eea1d"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 21:50:45 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 21:50:45 2014 -0500"
      },
      "message": "add versioning\n"
    },
    {
      "commit": "49d7a64c3b286055b8d328a0fcec0cfaa8c886ec",
      "tree": "bdbb6bac85fafc74bc26f2d423a609816044f353",
      "parents": [
        "816d2a0eac005471dc869b87ebbccc10a1e27781",
        "808bb63f2c790bb48c6e63a8abfb467a75d8d552"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 16:38:47 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Mon Apr 14 16:59:15 2014 -0500"
      },
      "message": "merging in changes from v0.2.0 branch\n"
    },
    {
      "commit": "816d2a0eac005471dc869b87ebbccc10a1e27781",
      "tree": "8ebda8d20997e480ef150e9509bf9b5217d0e138",
      "parents": [
        "cc2cb47bbbcf74286443bb19b7aa33a463dbfd93"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Mar 11 20:49:46 2014 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Apr 01 23:43:14 2014 -0500"
      },
      "message": "openstack object storage v02.0\n"
    },
    {
      "commit": "808bb63f2c790bb48c6e63a8abfb467a75d8d552",
      "tree": "6676332944a85ac68d454723080ece6f04031f79",
      "parents": [
        "41c9f6141e442658d684cb366b75e968c31ae04c"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Mar 12 00:07:50 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Mar 12 00:07:50 2014 -0700"
      },
      "message": "Add remaining server actions, except create image.\n\nCreate image action, to leave the user\u0027s account in the same state as it was\nbefore, requires we use the Images API to delete the created image.  I do not\nyet have those tests started, but when I write them, I\u0027ll add the create image\ntest at that time.\n"
    },
    {
      "commit": "41c9f6141e442658d684cb366b75e968c31ae04c",
      "tree": "2b11e3ae7db6c87c029bb7c26c8cd35500e4c339",
      "parents": [
        "ca5f9a3b95c9f828e53f4173da6e02ff377d5c38"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Tue Mar 11 19:00:10 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Tue Mar 11 19:00:10 2014 -0700"
      },
      "message": "Add server action: reboot server\n"
    },
    {
      "commit": "ca5f9a3b95c9f828e53f4173da6e02ff377d5c38",
      "tree": "3623db177f5d0a83c3b386439ce88ece8cd2f607",
      "parents": [
        "0196830f7075599c1353dfebb590f3b49640754f"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Tue Mar 11 17:52:58 2014 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Tue Mar 11 17:52:58 2014 -0700"
      },
      "message": "Add server action: change admin password\n"
    },
    {
      "commit": "97d1b5c44c2183c9d5c805729ec462b5b792a0b0",
      "tree": "16c3d837e61de8799b06e699cfa47a194eecae87",
      "parents": [
        "f9ffaa13a79d03a2804e0fd441e2a583819e0af7"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Feb 21 15:33:29 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Feb 21 15:33:29 2014 -0800"
      },
      "message": "Forgot to remove unused file.\n"
    },
    {
      "commit": "f9ffaa13a79d03a2804e0fd441e2a583819e0af7",
      "tree": "84ad5ed19a21b7b1f6e66b86a3334fc85c0060a2",
      "parents": [
        "b5d93f2575f4b797566b3dd41f011093b05aa0de"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Feb 21 15:14:29 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Feb 21 15:14:29 2014 -0800"
      },
      "message": "Use build tags to prevent accidental run of acceptance tests\n"
    },
    {
      "commit": "b5d93f2575f4b797566b3dd41f011093b05aa0de",
      "tree": "5960efc8ece47b5ce3bb7cbcee5427ca7b30c342",
      "parents": [
        "e246ac036e0e0c3b6899bfd5eb31517008313085"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Feb 21 15:00:20 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Feb 21 15:00:20 2014 -0800"
      },
      "message": "Use build tags to prevent accidental run of acceptance tests\n"
    },
    {
      "commit": "e246ac036e0e0c3b6899bfd5eb31517008313085",
      "tree": "ed02d063c68fc78b1baddce13923d0a098f74724",
      "parents": [
        "0abdb10ec53690232b3dc216f01e7dbdd997221d"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 23:20:09 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 23:20:09 2014 -0800"
      },
      "message": "go fmt\n"
    },
    {
      "commit": "0abdb10ec53690232b3dc216f01e7dbdd997221d",
      "tree": "118ad1b8fbb861b4bead0c013f7604c53db2276c",
      "parents": [
        "22d3b778e1a1d3bf197ac93e98581535fe85e4c6"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 23:19:26 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 23:19:26 2014 -0800"
      },
      "message": "Update server test\n"
    },
    {
      "commit": "22d3b778e1a1d3bf197ac93e98581535fe85e4c6",
      "tree": "e90822d90e91c53d6f5c7ad78ed78afd4627b3e6",
      "parents": [
        "ce0007352d4d165e1b142a88c9333d39b2289850"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 19:27:05 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 19:27:05 2014 -0800"
      },
      "message": "Add update server call\n"
    },
    {
      "commit": "ce0007352d4d165e1b142a88c9333d39b2289850",
      "tree": "7ebc2ca0dcd0acba82ce3ae0b0959e2467294c84",
      "parents": [
        "10decf92eeb53fd70e35c13e45e8f61949c2ab66"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 18:53:53 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 18:53:53 2014 -0800"
      },
      "message": "Create, delete, and query server\n"
    },
    {
      "commit": "10decf92eeb53fd70e35c13e45e8f61949c2ab66",
      "tree": "da32ab0c53a57caaaeaa6b3154c29bf1cef1433a",
      "parents": [
        "db02088a03211d72330be09a530862d723a757eb"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 17:05:35 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 17:05:35 2014 -0800"
      },
      "message": "Add ability to list flavors\n"
    },
    {
      "commit": "db02088a03211d72330be09a530862d723a757eb",
      "tree": "af05eba50923f5b37e35eca38a723acfcffbefad",
      "parents": [
        "f370dc7c6c1058ce97357b7f650123aa1ef53aac"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 15:37:57 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 15:37:57 2014 -0800"
      },
      "message": "Add test to list flavors\n"
    },
    {
      "commit": "f370dc7c6c1058ce97357b7f650123aa1ef53aac",
      "tree": "82ff3e75191b8cdeaaffc7b1854d7f331a72e2fc",
      "parents": [
        "8030050634a18bba4832fca0d28e84e7607f4113"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 15:05:34 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 15:05:34 2014 -0800"
      },
      "message": "Convert compute acceptance tests to go test form\n"
    },
    {
      "commit": "8030050634a18bba4832fca0d28e84e7607f4113",
      "tree": "ae7de7161e3cbf84376cb80c25dd013b92ba829e",
      "parents": [
        "6dbf9f6fc9fb5f9c44fd5a59dc915b55975d076b"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 14:54:31 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 14:54:31 2014 -0800"
      },
      "message": "Convert identity acceptance tests to go test form\n"
    },
    {
      "commit": "6dbf9f6fc9fb5f9c44fd5a59dc915b55975d076b",
      "tree": "3928fca4b4145b1cbb4f888c933c8dda672cf262",
      "parents": [
        "e520cb64a44e96d2caa2354f7a9c5e22986e77ba"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 13:51:58 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Thu Feb 13 13:51:58 2014 -0800"
      },
      "message": "Normalize the two listing tools\n"
    },
    {
      "commit": "e520cb64a44e96d2caa2354f7a9c5e22986e77ba",
      "tree": "ff7230fba2f45425d7c13730cf32cece6424d46c",
      "parents": [
        "5df4fb51752b911db46cf918c38fb42f5ca00b4c"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 21:18:57 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 21:18:57 2014 -0800"
      },
      "message": "Add support for region name\n"
    },
    {
      "commit": "5df4fb51752b911db46cf918c38fb42f5ca00b4c",
      "tree": "910990d1e6d0e843bf027f449906d82800a36d5a",
      "parents": [
        "17ae5659c5e48d0a66bb20aa06549f642172be87"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 21:17:39 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 21:17:39 2014 -0800"
      },
      "message": "Change output format for 01-servers\n"
    },
    {
      "commit": "17ae5659c5e48d0a66bb20aa06549f642172be87",
      "tree": "1ab303b3546f43b43150a1a3583c65125e6d647c",
      "parents": [
        "d793b02cb8bb6549680602b8f7e0c565e027a173"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 20:47:43 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 20:47:43 2014 -0800"
      },
      "message": "Add images resource\n"
    },
    {
      "commit": "d793b02cb8bb6549680602b8f7e0c565e027a173",
      "tree": "ca0a8d249da37446e80e652155ce337905acef4f",
      "parents": [
        "c007c277a25250f9eaf4e87f3bea9c40da1fb4b6"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 16:32:23 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Wed Feb 12 16:32:23 2014 -0800"
      },
      "message": "Support all regions when listing servers\n"
    },
    {
      "commit": "c007c277a25250f9eaf4e87f3bea9c40da1fb4b6",
      "tree": "191ede9cf4416a5c89f40896d1e988f8da6882fe",
      "parents": [
        "c70164db95928a53bbc9d9398d0a7547cfc7b980"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Mon Feb 10 20:49:26 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Mon Feb 10 20:49:26 2014 -0800"
      },
      "message": "Implement first function of cloud compute API\n"
    },
    {
      "commit": "c70164db95928a53bbc9d9398d0a7547cfc7b980",
      "tree": "30117e45b6f4398531ce813f3020251e33eaefe4",
      "parents": [
        "7dc05b0fb790347160c9e0dfd298ab5dad364f60"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sun Feb 09 12:12:36 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sun Feb 09 12:12:36 2014 -0800"
      },
      "message": "Fix API differences from x-new-api branch\n"
    },
    {
      "commit": "2b9632115cfed895e2d0c5720d80bed4ee7e3fae",
      "tree": "5a25ce3e4fc956980c5ae3cddc118aeb87bdbf4d",
      "parents": [
        "9637a00bdfb5c559a81788b8a79d6afc832028bc"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sun Feb 09 02:12:30 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sun Feb 09 02:12:30 2014 -0800"
      },
      "message": "Re-implement basic identity API for v0.2.0.\n"
    },
    {
      "commit": "9637a00bdfb5c559a81788b8a79d6afc832028bc",
      "tree": "2fe03013844d52702cf49743c25fc257784520ed",
      "parents": [
        "41822a75f5c56d1227bdcdf72f048e87794ac990"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sat Feb 08 16:47:39 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sat Feb 08 16:47:39 2014 -0800"
      },
      "message": "Reorg of acceptance tests\n"
    },
    {
      "commit": "41822a75f5c56d1227bdcdf72f048e87794ac990",
      "tree": "90e8924821255c92c97b7feb4832a6e171208dea",
      "parents": [
        "5d20fbf31166b78fb6502b3ef7c22dbf02b2fd96"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sat Feb 08 16:43:09 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sat Feb 08 16:43:09 2014 -0800"
      },
      "message": "Removed mixed dev work; focus returns to 0.2.0 API\n"
    },
    {
      "commit": "5d20fbf31166b78fb6502b3ef7c22dbf02b2fd96",
      "tree": "2ab8098c17ac345a4dee6a6c958dcfff0ce0e242",
      "parents": [
        "97f1059215a451be71baf379215103bce12047f5"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sat Feb 08 16:41:54 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sat Feb 08 16:41:54 2014 -0800"
      },
      "message": "Reverting to clean dev slate\n"
    },
    {
      "commit": "97f1059215a451be71baf379215103bce12047f5",
      "tree": "9a561f330bb459118cff9be1ee11ab414e41a635",
      "parents": [
        "3de36c90bb1c341a7feb7bbe802b17a8c4213597",
        "a1a95cc91d3a7493816e5b405ec456446888c4f7"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sat Feb 08 16:30:13 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "kc5tja@arrl.net",
        "time": "Sat Feb 08 16:30:13 2014 -0800"
      },
      "message": "Merge branch \u0027x-new-api\u0027 into v0.2.0\n"
    },
    {
      "commit": "a1a95cc91d3a7493816e5b405ec456446888c4f7",
      "tree": "644d5d90c7de5a010b8dcc5fcd765b9f85ba4194",
      "parents": [
        "d7aa3bddfb71dd88705864ec0f61423eb5295e00"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 16:31:40 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 16:31:40 2014 -0800"
      },
      "message": "Whoops -- forgot authentication token.\n"
    },
    {
      "commit": "0262e973440f1b4954c30f76d43119804865c9d1",
      "tree": "a0cb2b92a1b856d4f2cf0d4314f145c73a4f2207",
      "parents": [
        "8a549ef401853b19af27ddb9206efd060a1bce83"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 16:06:56 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 16:06:56 2014 -0800"
      },
      "message": "First monitoring API endpoint implemented\n"
    },
    {
      "commit": "8a549ef401853b19af27ddb9206efd060a1bce83",
      "tree": "43b5e8b694053ff6f8cf5a8352657a6f3517f0d7",
      "parents": [
        "94c582cbeb75c6ac2c2886a901d28b19673122bb"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 15:20:54 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jan 24 15:20:54 2014 -0800"
      },
      "message": "Initial commit of experimental, new, v0.2.0 API\n"
    },
    {
      "commit": "d361710d668ef60015e276d2e43bf6ad90064337",
      "tree": "5eec08997baa026ee92a4ed79534bdcf5c5a088e",
      "parents": [
        "94c582cbeb75c6ac2c2886a901d28b19673122bb"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jan 20 18:27:42 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jan 20 18:27:42 2014 -0800"
      },
      "message": "Refactor address set code for greater flexibility.\n\nFor some reason, this code doesn\u0027t work.  While the refactor does not\nappear to break acceptance/14-list-addresses, I simply _cannot_ find a\nreason why it won\u0027t work for acceptance/19-list-addresses-0.1.  If\nanyone can review this code and let me know what I\u0027m doing wrong, I\u0027d be\nmost appreciative!\n"
    },
    {
      "commit": "8280cb72c965987c79e66a7fe702c1b6f350c775",
      "tree": "2e5cacbee909d90659920d7d75b921912cfb3e16",
      "parents": [
        "0d8c2653f4ae2e52c696ebf1192d6c91c176226b"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jan 06 15:06:53 2014 -0800"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jan 06 15:06:53 2014 -0800"
      },
      "message": "Provide API for building AuthOptions from env vars.\n"
    },
    {
      "commit": "2be65d143a6763d1506cb3d2475dafb720697a5d",
      "tree": "2f4358217f18ae50f0a10a0e01952e1b79e3eb02",
      "parents": [
        "7152a1c22ce0c81494427ab7ee99c8d44f17c9d8"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:21:09 2013 -0600"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:23:40 2013 -0600"
      },
      "message": "go fmt\n"
    },
    {
      "commit": "7152a1c22ce0c81494427ab7ee99c8d44f17c9d8",
      "tree": "b3b441d814f1735fedb41cd47342369c6a044ed3",
      "parents": [
        "211719f348695e512c7d7090067811c824e3ff68"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:20:22 2013 -0600"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:23:40 2013 -0600"
      },
      "message": "update test to print out all addresses\n"
    },
    {
      "commit": "211719f348695e512c7d7090067811c824e3ff68",
      "tree": "8caeb792ab49ff13df35300230caef29c64e9fcd",
      "parents": [
        "28b495629d81c8ab75b79a6cd160faaf0592251c"
      ],
      "author": {
        "name": "Max Lincoln",
        "email": "max@devopsy.com",
        "time": "Fri Dec 13 14:49:38 2013 -0300"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:23:40 2013 -0600"
      },
      "message": "Tests broke because Image ID is outdated.  Find by name instead - it\u0027ll require less maintenance and will be easier to use with other providers.\n"
    },
    {
      "commit": "28b495629d81c8ab75b79a6cd160faaf0592251c",
      "tree": "a9c795a656e1e95a6879d839db0616b51c4715e0",
      "parents": [
        "c38f527089ee81d582219c33adfe2a9d668eb349"
      ],
      "author": {
        "name": "Max Lincoln",
        "email": "max@devopsy.com",
        "time": "Fri Dec 13 13:23:44 2013 -0300"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:23:40 2013 -0600"
      },
      "message": "Back to rackspace for pull request.\n\nRevert \"rackspace -\u003e maxlinc, to make sure travis works\"\n\nThis reverts commit c56e9e6d7ac987d0b073f79a545df94fc4d609bf.\n"
    },
    {
      "commit": "75e06ec56121b97f4f9a03a5df228e9f6185daff",
      "tree": "52858ed0bc61b2583af3a00c553a80c0ad2ad5e7",
      "parents": [
        "42b3672ee761de850924695e9bc3aa235b64a179"
      ],
      "author": {
        "name": "Max Lincoln",
        "email": "max@devopsy.com",
        "time": "Fri Dec 13 00:00:12 2013 -0300"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:23:39 2013 -0600"
      },
      "message": "rackspace -\u003e maxlinc, to make sure travis works\n"
    },
    {
      "commit": "4199dec57d1848f7cfcd938326ae527c3cd94c02",
      "tree": "bc911582c23fa02782f82ec06f36a79738dd1fb3",
      "parents": [
        "ed5dd7fe5e80424e1df63bef3b381d3759cd595c"
      ],
      "author": {
        "name": "Rafael Garcia",
        "email": "rafbgarcia@gmail.com",
        "time": "Thu Dec 12 22:16:58 2013 -0300"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:23:39 2013 -0600"
      },
      "message": "go fmt files authenticate.go, acceptance/00-authentication.go and acceptance/libargs.go\n"
    },
    {
      "commit": "ed5dd7fe5e80424e1df63bef3b381d3759cd595c",
      "tree": "13bc5bd614299d1331cb70419ea2b055fee072a1",
      "parents": [
        "dbc4e9ea4f0ece22c0ee19d59784060c129493d2"
      ],
      "author": {
        "name": "Rafael Garcia",
        "email": "rafbgarcia@gmail.com",
        "time": "Fri Dec 06 17:00:32 2013 -0300"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Fri Dec 13 17:23:39 2013 -0600"
      },
      "message": "+maxlinc - Add ApiKey authentication\n"
    },
    {
      "commit": "499dce120608e374c4aac267214c0409eb480caf",
      "tree": "b5bb650407e1659487c317c7b9f9d5eb8f995560",
      "parents": [
        "90356ba146044aee5c500e9f83e7098f45e86247"
      ],
      "author": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Oct 29 15:41:14 2013 -0500"
      },
      "committer": {
        "name": "Jon Perritt",
        "email": "jrperritt@gmail.com",
        "time": "Tue Oct 29 15:41:14 2013 -0500"
      },
      "message": "Fixes #21\n"
    },
    {
      "commit": "e4a3e427633bc8286297345b776fac4e9179dd81",
      "tree": "94834f9528cb22637248f93e9e0f80949e9450c1",
      "parents": [
        "d8789a6a5e757e543d70ec2e7f40e42fd66eea94"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Sep 13 12:36:37 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Sep 13 12:36:37 2013 -0700"
      },
      "message": "Remove the DFW default region.\n\nDFW doesn\u0027t make sense for non-Rackspace providers, so away it goes.\nAll the tests run for me without it.\n"
    },
    {
      "commit": "d2188c40344f37d22135a6c0c98c82b19605c3d1",
      "tree": "3a1e55f696c2a7e577b12153451fbebd1e11645b",
      "parents": [
        "12a81e6be78594c9dde02395e661f4be84d229fe"
      ],
      "author": {
        "name": "Mark Peek",
        "email": "mark@brkt.com",
        "time": "Tue Aug 27 08:16:28 2013 -0700"
      },
      "committer": {
        "name": "Mark Peek",
        "email": "mark@brkt.com",
        "time": "Tue Aug 27 08:16:28 2013 -0700"
      },
      "message": "Add acceptance test for CreateImage and DeleteImageById\n"
    },
    {
      "commit": "d27e25313fa2ed6f56aa125dddad85aa7503331d",
      "tree": "6097064b13de916cb4dee3a032bd8f146a5bd22b",
      "parents": [
        "7d3e09d2d527be3c9a5290da3b82062461ee69b8"
      ],
      "author": {
        "name": "Mark Peek",
        "email": "mark@brkt.com",
        "time": "Tue Aug 27 07:58:09 2013 -0700"
      },
      "committer": {
        "name": "Mark Peek",
        "email": "mark@brkt.com",
        "time": "Tue Aug 27 07:58:09 2013 -0700"
      },
      "message": "gofmt\n"
    },
    {
      "commit": "5a9151f72e3a06c7e2bea71e3e609ed2e43451a1",
      "tree": "f1d1bfbebf4583f93114bb8fd2bd341a11d9c48c",
      "parents": [
        "838f42daaf2297dc2e52d99fbc28b6ead94ff4dd"
      ],
      "author": {
        "name": "Mark Peek",
        "email": "mark@peek.org",
        "time": "Sat Aug 17 18:59:59 2013 -0700"
      },
      "committer": {
        "name": "Mark Peek",
        "email": "mark@peek.org",
        "time": "Sat Aug 17 18:59:59 2013 -0700"
      },
      "message": "Add support for keypairs\n\nAdds support for the following keypair operations:\n- ListKeyPairs yields the list of available keypairs.\n- CreateKeyPairs will create or generate a new keypair.\n- DeleteKeyPair wil delete a keypair.\n- ShowKeyPair will yield the named keypair.\n"
    },
    {
      "commit": "e21808f79ea9e6249d0294e6d535cee5c11f3676",
      "tree": "ac581efd2c5a208cbd14148e5d7fdb296eb348cd",
      "parents": [
        "b82f3d66468c3b6bc54a0844d6215c900b208b85"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Aug 14 14:48:09 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Aug 14 14:48:09 2013 -0700"
      },
      "message": "Add ListAddresses method for cloud servers\n"
    },
    {
      "commit": "414c15c7ca6f6f2e3fa8374a91b1dff0961dc5c7",
      "tree": "688a42beb2c5cabbdaaad45d035306acd3dcee1c",
      "parents": [
        "8a3a6e8d9c453b3f22eacaf7df1bc112772234c4"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Aug 01 15:16:46 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Aug 01 15:16:46 2013 -0700"
      },
      "message": "Implement Rebuild server functionality.\n\nI thought I\u0027d had this in already.  Apparently not.\n"
    },
    {
      "commit": "cb9eca6c84837c896cb27cbaf0975a17acbcb62c",
      "tree": "debf5fb724e30937b21722acbc6509c8bc6f25ed",
      "parents": [
        "20f1aa47a35e57b6ed9782b31b90dadecca46cba"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 31 14:33:33 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 31 14:33:33 2013 -0700"
      },
      "message": "Fix parameter omission in acceptance test\n"
    },
    {
      "commit": "72ac2ddf193b5199b08f0ae7736fd6f6fed11e11",
      "tree": "85eee9b31e59b5ff99f5f8ecb414039594361a23",
      "parents": [
        "e05d114303e6688841bc0d996f271050df3ddab6"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 31 13:45:05 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 31 13:45:28 2013 -0700"
      },
      "message": "Add update server capability.\n\nThis requires an updated version of Perigee, for it lacked a Put()\nmethod.  Make sure you \"go get -u github.com/racker/perigee\" prior to\ntesting, or you\u0027ll get method not defined errors.\n"
    },
    {
      "commit": "15da6ab911a2885b599fe92a141cef1524bec91b",
      "tree": "e75a1bbc81289cce15141f892cf4a9fe025c5f80",
      "parents": [
        "530609ade69e82fa57589c1ffd8b052ff1f28f48"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 30 14:02:11 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 30 14:02:11 2013 -0700"
      },
      "message": "Expose rescue/unrescue functionality.\n"
    },
    {
      "commit": "adbecf929e9da9d7d0ff90656d24290e19c74a19",
      "tree": "0c0d821f43b2293d6d73992d4ec366fa8d0c5f56",
      "parents": [
        "c8b11d197d04e843d5c52215f078bd16ac6d502a"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 30 13:13:59 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 30 13:13:59 2013 -0700"
      },
      "message": "Expose reboot server support.\n"
    },
    {
      "commit": "9b23b343bc6e109952313cbdbc728dfa7bd66e61",
      "tree": "ff8f4b5d9eba7ab8bdf3bb57c3c1528044cf1145",
      "parents": [
        "05aadc303cdaaf3d74ed3fd5b61a966e20ec2ffe"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 30 11:58:16 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 30 11:58:16 2013 -0700"
      },
      "message": "Deliver details with list images results\n"
    },
    {
      "commit": "887d780069d6c439c1ae8a7435366f893a40fcfc",
      "tree": "afea286b4a784e86fb210756c2acf301cd680fa5",
      "parents": [
        "3fdd9470ba633eafc6059ab8bc4642cd35f3f454"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 29 17:55:37 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 29 17:55:37 2013 -0700"
      },
      "message": "More technical debt payoff.\n\nApplied refactoring across the entire acceptance test code base.\n"
    },
    {
      "commit": "002b65141b5432b9602660d6c13069ce7ce827d0",
      "tree": "5eb049ebcbc6630b78e52568cb1e4114aec00b0d",
      "parents": [
        "d1b17c46dd69d6c6e3427861afcd2fa500cbe707"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 29 16:30:40 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 29 16:30:40 2013 -0700"
      },
      "message": "Create server to get details of if no other available.\n\nIf you attempted to run 03-get-server-details.go on a cloud account\nwithout a pre-existing cloud server, it would fail.  Clearly, this isn\u0027t\nintended, as it doesn\u0027t exercise the get-server-details functionality.\nI alter the code, as a last resort, create a new server.\n\nWe check first to see if a -i parameter has been set, and if so, we use\nit directly.  Otherwise, we attempt to list servers available for the\nuser, and if at least one exists, we pick the first one we find.  Only\nif those two conditions fail do we attempt to create a new server.\n"
    },
    {
      "commit": "41856d6f0f9d85ed8d9d1992f06b310ec9cf610e",
      "tree": "f651cf03d6f0c0ff62120fea4e5316316b0576a9",
      "parents": [
        "f722dbf282581dac51c277577e5f25654e8faa77"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 29 15:48:22 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 29 15:48:22 2013 -0700"
      },
      "message": "Simplify a few acceptance tests for illustration.\n\nExpect a big-bang PR following this one.  These two changes illustrate\nhow to use the newly refactored code.\n"
    },
    {
      "commit": "f722dbf282581dac51c277577e5f25654e8faa77",
      "tree": "c6f00a0a2a85b335536214ba20e9839d0e5842b0",
      "parents": [
        "d7ffabf11e8b5bd428fa41c04cf91bfb9fc14523"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 29 15:44:30 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 29 15:44:30 2013 -0700"
      },
      "message": "Refactor common initialization sequences.\n\nI\u0027ve been grossly violating the DRY principle for some time, in the name\nof coding velocity.  After 9 or so acceptance tests, it\u0027s tiresome,\nerror-prone, and inconvenient to have to cut-and-paste the same\ninitialization code between modules.  The time is now to fix this,\nbefore I write any more acceptance tests.  And, now that I have an\ninterface I\u0027m happy with, writing future acceptance tests should go much\nfaster than even before.\n"
    },
    {
      "commit": "8512e9aabbc6fc3327dcdb5946b9718f70cf6673",
      "tree": "78f757bcb7ee52679e5cd91612b29f435ca06c47",
      "parents": [
        "1782218478568a0bd11f183b51c0ee00154af23d"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jul 26 22:53:29 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jul 26 22:53:29 2013 -0700"
      },
      "message": "Add resize server action.\n\nThis looks like it should do the trick.  Intermittently, however, some\nservers created by the acceptance test will end up in an error state.\nIt is not consistently reproducible.  When it does work, however, it\nworks as expected.  I\u0027m not sure why the behavior is variable.\n"
    },
    {
      "commit": "1fc8eeec4f4f889c6a9f6223abb796a4f565fb87",
      "tree": "4eccf45253137302c0873f6b061433d98d5c5f46",
      "parents": [
        "4b235afe12269eb4267249d4c8a9c454b41d4b80"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 23:41:31 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 23:41:31 2013 -0700"
      },
      "message": "Move file into proper place.\n\nNot sure how this happened.\n"
    },
    {
      "commit": "4b235afe12269eb4267249d4c8a9c454b41d4b80",
      "tree": "c702ac4c8aaf3071dddde658544f210a22114c1d",
      "parents": [
        "80699603e7de076b6cd08e9f74affea590d4eaa3"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 23:39:10 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 23:39:10 2013 -0700"
      },
      "message": "Rearrange delete-server so it always runs last.\n\nMany tests will create servers as part of their normal operation.  We\nwant these to be cleaned up in one fell swoop.  By running\ndelete-server.go last, we accomplish this goal.\n"
    },
    {
      "commit": "80699603e7de076b6cd08e9f74affea590d4eaa3",
      "tree": "22a91908068798ac092273f4bff6a29afd9293f4",
      "parents": [
        "8935ca3c3238f856d3ec8fd3e02791cfa528b2a6"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 23:35:57 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 23:35:57 2013 -0700"
      },
      "message": "Make change-admin-password acceptence test autonomous\n\nUp to this commit, 09-change-admin-password.go required human\nintervention to run.\n"
    },
    {
      "commit": "8935ca3c3238f856d3ec8fd3e02791cfa528b2a6",
      "tree": "d6bffe5ff30f60f4cd1584adfc7aa1e4d127e077",
      "parents": [
        "5c305e115324107a05ebec572b95ed39eb30f596"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 21:27:06 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 21:27:06 2013 -0700"
      },
      "message": "Refactor createServer functionality for re-use.\n\nPresently, only 04-create-server.go is capable of dynamically creating\nservers as-needed.  However, many server action acceptance tests require\nservers of their own to perform tests on.  Refactoring the logic for\ncreating servers into a reusable form permits other tests to take\nadvantage of this ability.  This prevents human intervention from\nbecoming necessary to run acceptance tests.\n"
    },
    {
      "commit": "5c305e115324107a05ebec572b95ed39eb30f596",
      "tree": "6fca77f2b365298cbb63145afa848170e164a862",
      "parents": [
        "a87758a43113f31ea962cceca82d6402a5305dbe"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 19:19:43 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 25 19:19:43 2013 -0700"
      },
      "message": "Add ability to change admin password on a server\n"
    },
    {
      "commit": "a0a558435aa4cb539da571c3d4b447e5f9427727",
      "tree": "99efb5e037e7f1be0f0f0777710af24a97c1c825",
      "parents": [
        "7327a6ed2d8fcd12473d60e9b0072eccbd58947a"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 24 13:14:17 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 24 13:14:17 2013 -0700"
      },
      "message": "Fix ListServers to yield full details.\n\nAlso, provide ListServersLinksOnly() if you want to retain the older\nbehavior.  LinksOnly variant isn\u0027t terribly useful though, as it\nprovides virtually _no_ useful information other than the mere existence\nof a server.\n\nFixes #45.\n"
    },
    {
      "commit": "fb58669dd098ceb6fb65652fdbb2a1a639826a04",
      "tree": "dd34da18b9aa9c46e9297ffe3134a56fb86ff3c5",
      "parents": [
        "9e64f6bc81fe02aff17838c08c721e0a6fe9c703"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 16 17:00:14 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 16 17:00:14 2013 -0700"
      },
      "message": "Remove debugging infrastructure.\n\nBug was found, and things seems to work.  In summary, a comparison for\nerr !\u003d nil was performed where I intended err \u003d\u003d nil instead.\n"
    },
    {
      "commit": "9e64f6bc81fe02aff17838c08c721e0a6fe9c703",
      "tree": "6df26203a86bac45371407e18759b760f470f7aa",
      "parents": [
        "0167aaa6c2ba91af68fe5c023b94bdd320c60d1f"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 16 14:26:50 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 16 14:26:50 2013 -0700"
      },
      "message": "Convert ListImages to use reauth.\n\nThis commit does not work -- acceptance test 08-... is broken.\n"
    },
    {
      "commit": "659e14b849e32579d981e64f50d91a84393dfc0e",
      "tree": "622650ab135fa05f8a44788efa931b86c6f1df83",
      "parents": [
        "2f50b144054ea924f1b548de0211f5cd61085900"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 16 12:04:54 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 16 12:04:54 2013 -0700"
      },
      "message": "Add early acceptance test for reauthentication.\n"
    },
    {
      "commit": "286e4de1c95161c9ec6e756efe7c6f7a3bab2615",
      "tree": "60053fa06cb3381442138104a98ab7d1915265d0",
      "parents": [
        "e3b2d7a79e372b9be08095a5774cf588c94f6a92"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jul 12 11:33:31 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jul 12 11:33:31 2013 -0700"
      },
      "message": "Support delete server.\n"
    },
    {
      "commit": "e3b2d7a79e372b9be08095a5774cf588c94f6a92",
      "tree": "0be78a0d5ed7344c0b81fe6225f76e33af4edf52",
      "parents": [
        "962512dac3f310d4fc9869f2adf2d403d435de82"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jul 12 11:08:02 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Fri Jul 12 11:08:02 2013 -0700"
      },
      "message": "Fix 04-create-server test to use a common prefix.\n\nWe need servers to dispose of for the 07-delete-server acceptance test.\nCreating a bunch of servers in that test only to turn around and delete\nthem again will be unnecessarily time-consuming.  Instead, we\u0027ll use\nListServers() to discover a set of pre-existing servers to delete.\n04-create-server already creates a batch, and will always execute before\n07-delete-server (since 4 \u003c 7).  Altering 04-create-server to put a tag\nin the name of the servers it creates will allow 07-delete-server to\nfind them and delete them again.\n\nThe only exception is if any intervening tests fail.  You\u0027ll need to\nclean up manually in that case.\n"
    },
    {
      "commit": "4b0ba75a9f8c3c4621367741f6ea314cf42bec88",
      "tree": "b1a37db344e24b9c2b2d8c77e5220877a33c2880",
      "parents": [
        "8a8d531a17aee0193c4c91e53a537d6fc8ecd6cb"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:42:26 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:42:26 2013 -0700"
      },
      "message": "Finish acceptance test for CreateServer() function\n\nTwo problems remain -- server status is coming up blank, and\nmeasurements of disk and RAM are coming up zeros.  Not sure why this is.\nIt used to work in Gorax.  More comparative testing between Gorax and\nGophercloud is needed.\n\nHowever, what is in this commit is sufficient to get the acceptance\ntests running again, at least on Rackspace\u0027s infrastructure.  If you\nattempt to run these tests on HP or other infrastructure, they will\nfail for you.\n"
    },
    {
      "commit": "8a8d531a17aee0193c4c91e53a537d6fc8ecd6cb",
      "tree": "b798a7474a58849027fcffe9428779f4dd902865",
      "parents": [
        "bf1fb00d12e60224ebd7119b97c603fd929a03ad",
        "bba5cfd7d14e24e54a73a2d41cf322275f0cf2a9"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:16:22 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:16:22 2013 -0700"
      },
      "message": "Merge branch \u0027master\u0027 into create-server\n"
    },
    {
      "commit": "bc3f10fab901e7f63bab900f18277f0791826285",
      "tree": "1a044515a836954237633d8e9fc5bb376986d4c3",
      "parents": [
        "7196a10b1f1f433829b9870810c99e84b59e5607"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:13:24 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:13:24 2013 -0700"
      },
      "message": "Add ListFlavors() and acceptance test.\n\nThis is required to support server creation acceptance testing.  Without\nthe ability to detect flavors automatically, it isn\u0027t possible to\nautomate acceptance testing, as then a human operator would be required\nto manually intervene while testing.\n"
    },
    {
      "commit": "bf1fb00d12e60224ebd7119b97c603fd929a03ad",
      "tree": "28058866d3fe45bc9bdae1243ad09ebf453af55e",
      "parents": [
        "e91ff6df88b445adcb5bb39f9838c652128b745b",
        "7196a10b1f1f433829b9870810c99e84b59e5607"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:04:52 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:04:52 2013 -0700"
      },
      "message": "Merge branch \u0027master\u0027 into create-server\n\nConflicts:\n\tinterfaces.go\n"
    },
    {
      "commit": "0a6e45abb78bc2fa05956d13f99608897230d364",
      "tree": "f1e936e83ebd3c369d2d22c61a574d552a4034b3",
      "parents": [
        "704a750fa2d098d0537ced60a36a8cdc7e4612e2"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:00:41 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 17:00:41 2013 -0700"
      },
      "message": "Add ListImages() support and acceptance test.\n\nThis is needed to support a (currently broken) acceptance test for\ncreating a cloud server.  Without the ability to auto-detect an image, a\nhuman operator is required to specify an image manually, which defeats\nthe value of an automated test.\n"
    },
    {
      "commit": "e91ff6df88b445adcb5bb39f9838c652128b745b",
      "tree": "f5076f4412ea433c377122931020dd682d30e339",
      "parents": [
        "704a750fa2d098d0537ced60a36a8cdc7e4612e2"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 15:46:10 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Thu Jul 11 15:46:10 2013 -0700"
      },
      "message": "Add create-server acceptance test and support code\n\nThis check-in is not complete; it will break acceptance tests.  The\nproblem is that I cannot run the test in full-quiet mode yet; I need to\nsupport listing of images and flavors before I can do that.  That will\nallow the acceptance test to choose a server flavor and OS image\nappropriate for the acceptance test.\n"
    },
    {
      "commit": "704a750fa2d098d0537ced60a36a8cdc7e4612e2",
      "tree": "d371823f13567774bfd4c5ecc5e59fbc48279fc3",
      "parents": [
        "02f5e83ac462bf3ae8d768db9b895e57de457167"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 10 15:23:43 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 10 15:23:43 2013 -0700"
      },
      "message": "Remove duplicate code from acceptance tests.\n\nJust cleaning things up here.\n"
    },
    {
      "commit": "02f5e83ac462bf3ae8d768db9b895e57de457167",
      "tree": "0351d482e1c8dd1daee895868e7583696134733a",
      "parents": [
        "489484776a96585dfd7eebf186b975b15f2022ce"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 10 13:52:27 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Wed Jul 10 13:52:27 2013 -0700"
      },
      "message": "Add ServerById() function and acceptance test.\n"
    },
    {
      "commit": "1dd740af61898a80dd5e5acada4a558b86de0c76",
      "tree": "b2e001d59e7960412dd1f5e35ff767fb7e807619",
      "parents": [
        "bc0d54a28253182cde9f78be19e03ae91a8326be"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 08 15:48:40 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Mon Jul 08 15:48:40 2013 -0700"
      },
      "message": "Rename ComputeApi to ServerApi\n\nComputeApi never sat well with me.  OpenStack documents prefer to call\ntheir computing service \"Cloud Server\" API instead.  So, I renamed all\npublic-facing types and procedure names to reflect this usage.\n\nFixes #33\n"
    },
    {
      "commit": "fca35b7d2e4753c88f16e2ff88cddf29caf1f060",
      "tree": "4dbdc42443d445867c78a4e50728bdadcec09a25",
      "parents": [
        "daf65dccfea6f631599b59aafd8a1c5ac4b3e4d4"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 02 18:30:28 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jul 02 18:30:28 2013 -0700"
      },
      "message": "Implement Access.FirstEndpointUrlByCriteria\n\nThe FirstEndpointUrlByCriteria method is a key enabler for writing API\nprovider interface constructors.  A simple, albeit incomplete, use-case\nfor Cloud Servers API demonstrates how it\u0027s used internally.\n\nSee squashed commit history below for more detailed rationale behind the\nAPI design.\n\nSquashed commit of the following:\n\ncommit 625c31f754dcdcd2d348cf4cf5499a03ba6b2de1\nAuthor: Samuel A. Falvo II \u003csam.falvo@rackspace.com\u003e\nDate:   Tue Jul 2 18:21:36 2013 -0700\n\n    Fix service name typo\n\ncommit c6abcbe20bfe31a8c9399e78c186dca64d050140\nAuthor: Samuel A. Falvo II \u003csam.falvo@rackspace.com\u003e\nDate:   Tue Jul 2 18:15:41 2013 -0700\n\n    Added decision logic to FFEBC function.\n\ncommit bccf7178464c5071a81d63ef16fd20d7a241146f\nAuthor: Samuel A. Falvo II \u003csam.falvo@rackspace.com\u003e\nDate:   Tue Jul 2 17:18:14 2013 -0700\n\n    Added ListServers and its dependencies.\n\n    In order to list servers, we need access to a cloud server API.  This is\n    the job of the ComputeApi() function.\n\n    ComputeApi(), in turn, tries hard not to contrain the user in choosing\n    an endpoint, while still offering an interface optimized for the common\n    case of using an existing service provider\u0027s endpoints.  Otherwise, the\n    user will end up having to use nested functions and bizarre predicate\n    sequences like this:\n\n      func(ce *CatalogEntry, ee *EntryEndpoint) bool {\n        if ce !\u003d nil {\n          return ce.Name \u003d\u003d \"cloudComputeOpenStack\"\n        }\n        if ee !\u003d nil {\n          return ee.Region \u003d\u003d \"DFW\" \u0026\u0026 ee.VersionId \u003d\u003d \"2\"\n        }\n        return false\n      }\n\n    The current interface just encapsulates this kind of logic into a simple\n    structure, taking 66% fewer lines, and zero chance for error:\n\n      ApiCriteria{\n        Name: \"cloudComputeOpenStack\",\n        Region: \"DFW\",\n        VersionId: \"2\",\n      }\n\n    FindFirstEndpointByConstraint() is invoked (via\n    AccessProvider.FirstEndpointUrlByConstraint()) to actually look for a\n    matching endpoint in the provider\u0027s service catalog.  This interprets\n    the ApiCriteria structure settings, except for UrlChoice.  If it finds a\n    candidate endpoint, the user may select public or private endpoints via\n    the ApiCriteria.UrlChoice setting (which the\n    FirstEndpointUrlByCriteria() function interprets). If nothing is found,\n    an ErrEndpoint error will be returned to the caller.  Of course, this\n    being a brand new implementation, it just returns the default of\n    \"nothing found\" for all queries anyway.\n\n    If not specified, a criteria\u0027s UrlChoice defaults to PublicURL.\n\ncommit 9549f0b30e0736962dad55f3f38f88124e076fb9\nAuthor: Samuel A. Falvo II \u003csam.falvo@rackspace.com\u003e\nDate:   Tue Jul 2 17:10:14 2013 -0700\n\n    Removed VIM temp swap file\n\ncommit 8e00ad5ac3466cbec3c539e8b21bea6d23ab37f7\nAuthor: Samuel A. Falvo II \u003csam.falvo@rackspace.com\u003e\nDate:   Tue Jul 2 16:20:22 2013 -0700\n\n    Add ApiCriteria to API\n\ncommit 6f3b41929a496c6a0734221bf12ef27035b71e39\nAuthor: Samuel A. Falvo II \u003csam.falvo@rackspace.com\u003e\nDate:   Tue Jul 2 16:18:49 2013 -0700\n\n    Add acceptance test for list servers\n"
    },
    {
      "commit": "1d3fa667c76ec6dabb67a0b13ce07c3022768f4c",
      "tree": "ab8cc3e95e3080b9a8526668661d58eec190cc28",
      "parents": [
        "d6092adfb69759791c3f3fdd99e5642066e3e642"
      ],
      "author": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jun 25 15:29:32 2013 -0700"
      },
      "committer": {
        "name": "Samuel A. Falvo II",
        "email": "sam.falvo@rackspace.com",
        "time": "Tue Jun 25 15:29:32 2013 -0700"
      },
      "message": "Add authentication acceptance test.\n\nBefore coding on the Authentication functionality of gophercloud, we\nneeded the acceptance test to know when we were finished.\n\nSince the authentication test is written in Go, I had to adjust the\nscripts/test-all.sh file to invoke Go programs directly.\n"
    }
  ]
}
