)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
