)]}'
{
  "log": [
    {
      "commit": "b371430baebd8c3b130e418e0c6f5a5a2144ece2",
      "tree": "05a3259bd8c41a933b332450abc5b3da4a0af8a4",
      "parents": [
        "b42a31c55479f89417469265f34eb4c50b00aa6b",
        "265fc49f484ce85340ca480dfad22a4edba18c96"
      ],
      "author": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Wed Oct 24 15:09:47 2012 -0700"
      },
      "committer": {
        "name": "Dan Talayco",
        "email": "dan.talayco@bigswitch.com",
        "time": "Wed Oct 24 15:09:47 2012 -0700"
      },
      "message": "Merge branch \u0027kenc\u0027\n"
    },
    {
      "commit": "b42a31c55479f89417469265f34eb4c50b00aa6b",
      "tree": "deb11a5447ab3e73aaac3db4d20d4517ebda3034",
      "parents": [
        "387fcd7e22c5df376937e3533e57ecb021017b2a"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 17:54:17 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Tue Oct 16 16:24:17 2012 -0700"
      },
      "message": "libpcap dataplane\n\nAlternate port implementation using libpcap. This is required for recent\nversions of Linux (such as Linux 3.2 included in Ubuntu 12.04) which\noffload the VLAN tag, so it isn\u0027t in the data returned from a read on a raw\nsocket. libpcap understands how to read the VLAN tag from the kernel.\n\nIf pypcap is installed on the host then the new dataplane is used. Otherwise\nthe old one will still work.\n"
    },
    {
      "commit": "e875baf604d374ef04a9a8388a8b7f2f556ef469",
      "tree": "7b06542a0120eae778d5939b5ec37fd87b242421",
      "parents": [
        "adc950f39bca913271eceb69e850f21488dd9b79",
        "e703c6801ddb686e042bc82589e1ae4a7a4b1a41"
      ],
      "author": {
        "name": "Ken Chiang",
        "email": "ken.chiang@bigswitch.com",
        "time": "Tue Oct 09 15:24:40 2012 -0700"
      },
      "committer": {
        "name": "Ken Chiang",
        "email": "ken.chiang@bigswitch.com",
        "time": "Tue Oct 09 15:24:40 2012 -0700"
      },
      "message": "Merge branch \u0027master\u0027 into kenc\n\nConflicts:\n\ttests/cxn.py - manually resolved\n"
    },
    {
      "commit": "8b59b4b3f39e61d6c5f4bcde42415adf20408dc4",
      "tree": "976d023e7375d7461f8ec2718285705ceb8043ba",
      "parents": [
        "e703c6801ddb686e042bc82589e1ae4a7a4b1a41"
      ],
      "author": {
        "name": "Christian Dickmann",
        "email": "christian.dickmann@gmail.com",
        "time": "Sun Sep 23 16:48:30 2012 -0700"
      },
      "committer": {
        "name": "Christian Dickmann",
        "email": "christian.dickmann@gmail.com",
        "time": "Mon Oct 08 21:11:16 2012 -0700"
      },
      "message": "Add packet parsing/matching verification\n\nNew tests that deal with parsing and matching of valid and\ncorrupted packets. Current coverage includes corrupted IP\nand TCP headers, valid and corrupted LLC (with and without\nSNAP), basic ARP and basic VLAN.\n"
    },
    {
      "commit": "1a8d5aab3d18952a4d03e166e1c9a39b64dbad5a",
      "tree": "4d8685c068f3d3a7f09ef6d3738b7272c8a9e802",
      "parents": [
        "51b3fe9fd9e06153990426b763da27586e0c4f17"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Oct 08 15:40:03 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Mon Oct 08 15:45:51 2012 -0700"
      },
      "message": "ensure first message switch receieves is hello\n\nA test waiting in controller.connect() could wake up and send e.g. a\nfeatures_request message before the controller thread sends a hello message,\ncausing the switch to drop the connection.\n"
    },
    {
      "commit": "e5779d33367b23c44e9794a1d1bfca5e3892b20a",
      "tree": "1ce35ac68a0221ab53da3599bcced18d22c40ce8",
      "parents": [
        "2014f9b1c88efef6116d5b3f5dae552e5c9741c6"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 17:56:04 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 18:10:21 2012 -0700"
      },
      "message": "fix pylint errors\n\nAlso removed some testutils code that must have been dead because it had\nrotten.\n"
    },
    {
      "commit": "2014f9b1c88efef6116d5b3f5dae552e5c9741c6",
      "tree": "903a6842d75d708e90f04e7128a8cc3ac4e320b8",
      "parents": [
        "483e15412b1c3902ec398cdaa7c79d9cec147d76"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 15:29:40 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 18:10:21 2012 -0700"
      },
      "message": "remove config parameter from several testutils functions\n"
    },
    {
      "commit": "b90a1c4dfc0cfe40251187124ff89d7651f2755d",
      "tree": "1ba481298fbd4379fa1eedc0acc35899d7c33a38",
      "parents": [
        "477f4817eedc0ef6306459de1f88d77739bee7cf"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 09:16:05 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 18:10:14 2012 -0700"
      },
      "message": "move base test classes to oftest.base_tests\n\nThis lets them be shared between separate directories of tests.\n"
    },
    {
      "commit": "adc950f39bca913271eceb69e850f21488dd9b79",
      "tree": "318a2d4afb6ad12e6381013f5dd982552fea84e9",
      "parents": [
        "123928cd3c6a26ecbd852e2e01d6a5b921a5256a"
      ],
      "author": {
        "name": "Ken Chiang",
        "email": "ken.chiang@bigswitch.com",
        "time": "Fri Oct 05 13:50:03 2012 -0700"
      },
      "committer": {
        "name": "Ken Chiang",
        "email": "ken.chiang@bigswitch.com",
        "time": "Fri Oct 05 13:50:03 2012 -0700"
      },
      "message": "Add disconnect() and wait_disconnect() methods to controller.\nWhen current connection to the switch is disconnected,\nallow controller to continue listening without killing controller thread.\nRework cxn tests to use this new controller model.\n"
    },
    {
      "commit": "477f4817eedc0ef6306459de1f88d77739bee7cf",
      "tree": "2133c905fdd5da93949bd4cc8bb343be93370b1c",
      "parents": [
        "d1d9c287220588b5e8cff337f4f136ab9660a235"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 22:49:00 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 12:30:31 2012 -0700"
      },
      "message": "add a global config dictionary\n\nThere was no need for each test module to keep a copy for itself. This means we\ncan also get rid of test_set_init.\n"
    },
    {
      "commit": "a92f2526be41f5334728f36be4b6d6dd4db6f46e",
      "tree": "fdddd0d859e98741cc87b1b4b5cfbcfb65e05d6f",
      "parents": [
        "5bd6cf94def52d433139d430cc34a6c1c49f8fd8"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 18:11:04 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:44:34 2012 -0700"
      },
      "message": "remove unnecessary uses of eval\n\nThere are easier ways to do everything that was being done with eval.\n"
    },
    {
      "commit": "9a00381ec150547bc039a60b5c5f0269bc0a8dfb",
      "tree": "49572bb0e31027cc02a46d5a2f52d29c1b954eec",
      "parents": [
        "123928cd3c6a26ecbd852e2e01d6a5b921a5256a"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Thu Oct 04 17:17:59 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Fri Oct 05 08:39:50 2012 -0700"
      },
      "message": "use the singleton logger object\n\nThere was no need for each test file to have its own logger.\n"
    },
    {
      "commit": "da3b5ad89ce995cbc3a08dfff06dcb4f66f85578",
      "tree": "dab88f247ee287b8efaee8ae287676aa13241fb9",
      "parents": [
        "fb9ce27051f9df1a3f43e43154d0443f06f80287"
      ],
      "author": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Oct 03 09:05:32 2012 -0700"
      },
      "committer": {
        "name": "Rich Lane",
        "email": "rich.lane@bigswitch.com",
        "time": "Wed Oct 03 10:15:27 2012 -0700"
      },
      "message": "move testutils to src/python/oftest\n\ntestutils.py needs to be in a common location for different directories of\ntests to use it.\n"
    },
    {
      "commit": "fb9ce27051f9df1a3f43e43154d0443f06f80287",
      "tree": "642d4401393d366d197e369741e333d4ad24f7e6",
      "parents": [],
      "author": {
        "name": "Jeffrey Townsend",
        "email": "jeffrey.townsend@bigswitch.com",
        "time": "Tue Oct 02 21:10:29 2012 -0700"
      },
      "committer": {
        "name": "Jeffrey Townsend",
        "email": "jeffrey.townsend@bigswitch.com",
        "time": "Tue Oct 02 21:10:29 2012 -0700"
      },
      "message": "Do not include tests with a negative priority.\n"
    }
  ]
}
