)]}'
{
  "log": [
    {
      "commit": "3eb27a56d762da3e4412e79b45a615ded900aad8",
      "tree": "e92eba2fa14f7d4ab77608022bf3680bae146ee4",
      "parents": [
        "9fbb223b548e5b2cd35d8dc77d2f423e176468d2"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Jan 03 21:56:48 2017 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Jan 03 21:56:48 2017 -0800"
      },
      "message": "Happy New Year 2017\n\nChange-Id: Ib9a77f5e7d8d857a519d20904ec0d745e32eb257\n"
    },
    {
      "commit": "66862035accde9e1dcb32f7c711465d00e543af8",
      "tree": "366f637706444a93514af802d87889d3572073b9",
      "parents": [
        "00d9a842344958e9361aa02f15775f9151b3eab9"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Nov 28 14:28:39 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 07 11:50:29 2016 -0800"
      },
      "message": "Flow decomposition and miscellenous improvements\n\nSpecifically:\n\nThe biggest addition is an initial flow decomposition\nimplementation that splits flows and flow groups\ndefined over the logical device into per physical\ndevice flows, based on a very crude and heuristic\napproach. We expect this part to be much improved\nlater on, both in term of genericness as well as\nspeed.\n\nThe flow decomposition is triggered by any flow\nor group mods applied to a logical device, and it\nconsequently touches up the affected device tables.\nThis uses the POST_UPDATE (post-commit) mechanism\nof core.\n\nThere is also an initial arhcitecture diagram added\nunder docs.\n\nAdditional improvements:\n\n* Implemented metadata passing across the gRPC\n  link, both in Voltha and in Chameleon. This paves\n  the road to pass query args as metadata, and also\n  to pass HTTP header fields back and forth across\n  the gRPC API. This is alrady used to pass in depth\n  for GET /api/v1/local, and it will be used to\n  allow working with transactions and specific config\n  revs.\n* Improved automatic reload and reconnect of chameleon\n  after Voltha is restarted.\n* Improved error handling in gRPC hanlers, especially\n  for the \"resource not found (404)\", and bad argument\n  (400) type errors. This makes gRPC Rendezvous errors\n  a bit cleaner, and also allows Chameleon to map these\n  errors into 404/400 codes.\n* Better error logging in generic errors in gRPC handlers.\n* Many new test-cases\n* Initial skeleton and first many steps implemented for\n  the automated testing for the cold PON activation\n  sequence.\n* Convenience functions for working with flows (exemplified\n  by the test-cases)\n* Fixed bug in config engine that dropped changes that\n  were made in a POST_* callback, such as the ones used\n  to propagae the logical flow tables into the device\n  tables. The fix was to defer the callbacks till the\n  initial changes are complete and then execute all\n  callbacks in sequence.\n* Adapter proxy with well defined API that can be\n  used by the adapters to communicate back to Core.\n* Extended simulated_olt and simulated_onu adapters to\n  both demonstrate discovery-style and provisioned\n  activation style use cases.\n* Adapter-, device-, and logical device agents to provide\n  the active business logic associated with these\n  entities.\n* Fixed 64-bit value passing across the stack. There was\n  an issue due to inconsistent use of two JSON\u003c--\u003eProto\n  librarier, one of which did not adhere to the Google\n  specs which recommend passing 64-bit integer values as\n  strings.\n* Annotation added for all gRPC methods.\n\nAll Voltha test-cases are passing.\n\nChange-Id: Id949e8d1b76276741471bedf9901ac33bfad9ec6\n"
    },
    {
      "commit": "2bdb6b31e4b86a5ae88fbceb70bd05143cef318b",
      "tree": "766a1571ac170fc997e1a87829de5f3976e8a94a",
      "parents": [
        "3d565e206c2dc0ac28f3921e1e44e6a865d4fc8c"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 03 16:56:17 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 03 19:33:59 2016 -0700"
      },
      "message": "Nomralize component start()/stop()\n\nAlso fixed the /schema swagger/rest entry. It did not work\nbecause the 3rdparty protobuf_to_dict library cannot handle\nMap fields. Changed the two map fields to a single list\nentry.\n\nChange-Id: Ib25a528701b67d58d32451687724c8247da6efa5\n"
    },
    {
      "commit": "d4226ed3cd4d1f3bd15117ff3b847a8c1ac4b5d9",
      "tree": "5af094ccd68d23aa5d282e9f21e343d86e805df3",
      "parents": [
        "1504408a3591f5dad8f9bdd85f198f455a5f28fc"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Oct 05 17:49:27 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Oct 05 17:49:27 2016 -0700"
      },
      "message": "Chameleon fault tolerance\n\nChange-Id: Id7060f121f85a444005dfeff6279daef51a59295\n"
    },
    {
      "commit": "1504408a3591f5dad8f9bdd85f198f455a5f28fc",
      "tree": "9767c43ca22da02a048316e46985b4ceec640524",
      "parents": [
        "034db37f38b01a23ff855a3a7a502e40e9fd002c"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Oct 05 00:18:57 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Oct 05 00:18:57 2016 -0700"
      },
      "message": "Dockerized chameleon to work\n"
    },
    {
      "commit": "034db37f38b01a23ff855a3a7a502e40e9fd002c",
      "tree": "9292a8c75da35dbaddd632bdc5fa1cae9ec40eaa",
      "parents": [
        "7baf38ae39134b37d984dc0d45bac21b7b019cdb"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 03 22:26:41 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 03 22:26:41 2016 -0700"
      },
      "message": "Chameleon self boot-strapping API\n"
    }
  ]
}
