)]}'
{
  "log": [
    {
      "commit": "eef9b134d2c6743b3fd39ad3a2cedc6fb000d70d",
      "tree": "b707d5c270aeff2500f952ac91ff6d1a1dda93ef",
      "parents": [
        "b03ec1170aea069def1b0ecbc29b5b6dce5fa8bc"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Thu Feb 02 17:46:51 2017 -0800"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Thu Feb 02 17:46:51 2017 -0800"
      },
      "message": "fixing nightly build after the chameleon escaped...\n\nChameleon left so to catch him, we had to mount the entire cord\nrepo to allow voltha to build the chameleon container.\n\nChange-Id: I60db604fd557aa0d6f7d3995951d403af39cb641\n"
    },
    {
      "commit": "13dd7489869f65c9f57843f7bc44dda9746f7c9e",
      "tree": "e4bc75d00646c0272bb49352792f7a28e30bf8cc",
      "parents": [
        "3676b7cbd581d8b3b668d47803da300697a02745"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Tue Jan 31 16:08:03 2017 -0800"
      },
      "committer": {
        "name": "Ali Al-Shabibi",
        "email": "ali@onlab.us",
        "time": "Wed Feb 01 09:22:12 2017 -0800"
      },
      "message": "fixes to docker related aspects\n\nChange-Id: I464140c3a1104ef17634038dfc0f40c1522bc0b9\n"
    },
    {
      "commit": "29a3ed534787a4c529d07c25bd516bdb2f4947c7",
      "tree": "5eda757c0eddbe5483d924fc22398d07e373b83e",
      "parents": [
        "16c0da7336a39e06c1f90be9c07c9341c2fff5c3"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Jan 23 14:29:21 2017 -0800"
      },
      "committer": {
        "name": "Ali Al-Shabibi",
        "email": "ali@onlab.us",
        "time": "Mon Jan 23 15:58:39 2017 -0800"
      },
      "message": "Reviving the unit tests\n\nThis commit also lays the ground work:\n    - coverage reports from unit tests\n    - enabling per commit tests\n\nChange-Id: I1115600c3f4b213a73197b40750dd29f7c17aef1\n"
    },
    {
      "commit": "e58f2fdc6f4daa9971c536f2d71dc0489f5e7da5",
      "tree": "51fcb6ebc061c7d002e504876c73104b23747e44",
      "parents": [
        "5e18057d11824d7ecf573d5c3cf2885aeb8e6b39"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Wed Jan 11 14:18:13 2017 -0600"
      },
      "committer": {
        "name": "Ali Al-Shabibi",
        "email": "ali@onlab.us",
        "time": "Wed Jan 11 12:20:27 2017 -0800"
      },
      "message": "fix in makefile\n\nChange-Id: Iac1f9b70eccb784823dc2f75a858bf0bd2849464\n"
    },
    {
      "commit": "5e18057d11824d7ecf573d5c3cf2885aeb8e6b39",
      "tree": "cd939a6ee899ba398b5bb5c488de06f7c6611962",
      "parents": [
        "9b9f1adaff80cd85a96ad190d052a6d84abf3226"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Tue Jan 10 23:59:47 2017 -0600"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Jan 11 08:22:16 2017 -0800"
      },
      "message": "adding a tester container\n\nChange-Id: I6ca83cdbfc582daf561817e10262f8b1db85d27f\n"
    },
    {
      "commit": "9ed542981dc548a14e926d0d2052c3d2c21f595d",
      "tree": "288efba89c1568534ecc047c861aba0f64a3e82a",
      "parents": [
        "ee5c4c8594f3e0a99b4ad87594195dc69797a50f"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Jan 09 18:28:32 2017 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Jan 09 18:28:32 2017 -0800"
      },
      "message": "Reverting recent changes that broke packet in plumbing\n\nChange-Id: I12bc2f46aa9fc4266b5caae26cc4778fe17e9782\n"
    },
    {
      "commit": "db892336daad1268efd548599b87b284bebaf27b",
      "tree": "89e463364b61787ad526c42eaf0704f241373770",
      "parents": [
        "fdf2c410840752da102fd6654e897d7f99dd4955"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Jan 09 11:08:38 2017 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Jan 09 11:08:45 2017 -0800"
      },
      "message": "Refined make to build containers\n\nChange-Id: I53fed4d2d19a5fc771924763997130f36417412c\n"
    },
    {
      "commit": "348d193a3429cd791b84a9df85e035d81407c117",
      "tree": "d234b25c83607f758a63a6d7e105da84a58ef47a",
      "parents": [
        "781eeb6ad440941ab90f9f9dbd5d6522e9c71362"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Dec 10 01:10:07 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 20 00:34:46 2016 -0800"
      },
      "message": "Group mods after San Jose bakeoff\n\nChange-Id: I29146da2e77e223e70a4bffea6a475a8af94f2f0\n"
    },
    {
      "commit": "1f564ca9e2f623d2e3774efd8c765a8bd02f8151",
      "tree": "c1a38d7d9848a84d31772314abb524c12aafa9a5",
      "parents": [
        "aaac7ee1b70085929f99e55aa655fd7b3161863d"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Dec 12 13:41:13 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 18:24:35 2016 -0800"
      },
      "message": "- Fixes the Git merge issue.\n- Specify the lxml version (latest version of 2 days ago is broken)\n\nChange-Id: I819bbe378feb5b90d665eed25b4bef9ac7718411\n"
    },
    {
      "commit": "aaac7ee1b70085929f99e55aa655fd7b3161863d",
      "tree": "1b8b9748cbc6c3ed124a623903b74046cbc08f24",
      "parents": [
        "9ad4569b8562999bfb2cad4d6281884d969e8666"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Sun Dec 11 22:03:52 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 18:24:35 2016 -0800"
      },
      "message": "This commit consists of:\n1) Dockerizing the netconf server\n2) Update proto2yang to support module imports\n3) Provide a set of yang modules derived from the proto files in voltha.\n   These files as well as the slight mmodifications to the proto files are\n   provided in the experiments/netconf/proto2yang directory\n4) Code to automatically pull proto files from voltha into the netconf server,\n   compiles them and produce the yang equivalent files.\n5) Add a getvoltha netconf API to provide voltha state information (basic at\n   this time).  There is potential to make this generic once we experiment\n   with additional APIs\n\nChange-Id: I94f3a1f871b8025ad675d5f9b9b626d1be8b8d36\n"
    },
    {
      "commit": "aa4626e3d2ce53813090a5555ee1c3e2761c3624",
      "tree": "05185e98357e89ac0c47d3dee72e69ed39720ff5",
      "parents": [
        "99509d3e23b35b79fded77ca20004ed54cc10ddd"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 08 16:53:06 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Dec 11 20:00:49 2016 -0800"
      },
      "message": "Initial KPI/PM support\n\nAdded a tiny program (and container) to shovel KPI\ndata from Kafka to graphite using carbon pickle\nformat. The utility is called \u0027shovel\u0027. It is dockerized.\n\nReorganized Dockerfiles in their own dir to start cleaning\nup top-level dir of Voltha.\n\nA 3rd-party grafana/graphite container is added to the\nsystem test ensamble, launched by docker-compose. With\nthe new shovel, this implements a KPI/PM metric store\nwith a very nice Web UI (grafana).\n\nFinalized internal sample format and extended the new\ndiagnostics module to publish 2 initial metrics to\nKafka, which now nicely shows up via both kafkacat\nand grafana.\n\nThe infrastructure is ready for arbitrary metrics now.\n\nThis commit accidentally picked up some ongoing change\non the Tibit integation side, but it is too complex\nto untangle, so I leave it in; Nathan will push his\nlatest Tibit adapter code in the next 24h.\n\nChange-Id: I6812dd5b198fef5cb19f111111111113fba8b625\n"
    },
    {
      "commit": "dafefe16ce5d946271ca9ac5a4fd36ec2a92bee8",
      "tree": "a0f218d28f01c9498ca63993e1c8987337be1158",
      "parents": [
        "7b1bab911a9e79da18247746f6b56168d24df049"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Nov 14 21:29:58 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 23 10:20:30 2016 -0800"
      },
      "message": "Config/management model framework initial version\n\nThis is the initial commit of the internal config\nmodel tree for Voltha.\n\nA system that borrows key concepts from Docker, repo,\nand git for multi-revision configuration handling with\ntransaction (commit/abort) logic, tagging, and the\nability to diff between config versions.\n\nKey features:\n* Stored model is defined using *annotated* Google protobuf\n  (*.proto) files\n* Model is kept in memory as Python protobuf message objects\n* The whole configuration is arranged in a nested (tree)\n  structure, made up of ConfigNode objects. Each\n  ConfigNode holds its config data as (possibly nested)\n  protobuf message object, as well as lists of \"pointers\"\n  to its logically nested children nodes. What message\n  fields are considered part of the node-local config vs.\n  what is stored as a child node is controlled by \"child_node\"\n  annotations in the *.proto files.\n* Each ConifgNode stores its config in immutable\n  ConfigRevision obects, each revision being identified\n  by a unique hash value, calculated from a unique\n  hash value of its local configuration as well as\n  the list of hash values of all its children node.\n* Collection type children nodes can be indexed (keyed)\n  so that they can be addressed with \"path\" notation\n  friendly to REST and other interfaces/APIs. Which\n  field is used as key is defined in the parent message\n  using \"key\" attribute of the \"child_node\" annotation.\n  Currently string and integer type fields can be used\n  as keys.\n* Changes to the model create new revisions in all\n  affected nodes, which are rolled up as new revisions\n  to the root node.\n* Root revisions can be tagged, tags can be moved\n* The root node by default keeps a rev, but provides\n  a mechanism to purge untagged revs.\n* All branch and leaf nodes auto-purge interim revs\n  not needed. A rev is not needed if no one refers\n  to it.\n* Diffing between revs is supported, it yields RFC6902\n  jsonpatch objects. Diffing can be done between any\n  revs.\n* The main operations are: CRUD (we call them .add,\n  .get, .update, .remove)\n* Get can be recursive to an optionally limited depth.\n* There is support for Read-Only attributes (fields)\n* All CRUD operation support \"path\" based addressing.\n* There is support for an branch/leaf node perspective\n  implemented by ConfigProxy. This proxy, when attached\n  to an arbitrary node in the tree, provides all the\n  CRUD operations in that context, that is, path args\n  are used relative to that node.\n* Transaction support: All mutations made in a transaction\n  are invisible to others until the transaction is committed.\n  The commit is atomic (either all changes are applied\n  to the tree or none). Conflicts between transactions\n  are detected at the per-node level and a conflict\n  results in rejecting the conflicting transaction (first\n  one wins).\n* Registered callbacks: via the proxy objects an\n  observer can register for pre- and post- operation\n  callbacks. Also, there is a post-get callback which\n  can be used to augment stored data with real-time\n  data.\n\nI started hooking up the new config infrastructure to\nVoltha\u0027s CORE, but this is still in progress, as not\nall existing APIs have bee moved over yet.\n\nNote: I also lumped in some experimental files working\nwith \"Any\" types in protobufs\n\nChange-Id: Ic547b36e9b893d54e6d9ce67bdfcb32a6e8acd4c\n"
    },
    {
      "commit": "283d76850c48b70e1821ff2366ecedbea50ed8a5",
      "tree": "6a85e6cfa10a9441455c4b96991d356d66a1d172",
      "parents": [
        "94026691258da57f7e3092f4481c025b9122b4b5"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Nov 11 16:37:32 2016 -0500"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Nov 11 16:37:32 2016 -0500"
      },
      "message": "Update the docker command in smoke-test to work with jenkins.   Also, update the test script as the docker-compose file has new service -podder\n\nChange-Id: I06393287f45b67cc029990f3a791ae397bcb0aae\n"
    },
    {
      "commit": "34e7ebb30f669f3cc98a4be892901b34e9e150f4",
      "tree": "900ef4d14e4cb094686b6427827e7d84843bff94",
      "parents": [
        "96bb532697cce77beb7b63274add74736bf9f26c"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 10 13:38:44 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 10 21:13:14 2016 -0800"
      },
      "message": "This commit consists of:\n1) Remove frameio reference and use run from root instead\n2) Add a smoke-test to be used mostly by jenkins\n3) Limit the kafka docker heap size\n\nChange-Id: I29ef144996a72088b3c5d7d98b1639b6901ab2b8\n"
    },
    {
      "commit": "96bb532697cce77beb7b63274add74736bf9f26c",
      "tree": "0b8fdf6544aba88e8fd1610bf5c77bea07bce1f2",
      "parents": [
        "9d222026a2a72f13737bfc4e9f6fd6ab2066674c"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Nov 09 20:16:03 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 10 21:13:14 2016 -0800"
      },
      "message": "1) Keep only 1 sanity test as part of the jenkins build test, 2) exclude the test_frameio.py test from direct run, 3) set the frameio test to be run within a docker when the itest is invoked\n\nChange-Id: I2388f0465b891b3aba781ce728000dc92d134727\n"
    },
    {
      "commit": "7941d40d11b0ba83fbcebdc041bc564b4b8f4b84",
      "tree": "96f24da3aa32cab0ac9f56cb8f5b2846e29a8630",
      "parents": [
        "bf8bf28ea87c4c1b0f4a27d63465bac698db2aaa"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Tue Nov 08 00:11:20 2016 +0100"
      },
      "committer": {
        "name": "Ali Al-Shabibi",
        "email": "ali@onlab.us",
        "time": "Thu Nov 10 16:17:13 2016 -0800"
      },
      "message": "Redesign of Podder.\n\nPodder now only listens to events from the docker\napi. Docker event api will use a callback mechanism\nto take action when a container is started or stopped.\n\nAdding Dockerfile for podder and an entry into the\ncompose file.\n\nChange-Id: Ib5735078a69eab3af6076af94bc697ab3e82a239\n"
    },
    {
      "commit": "95b68c5b0b9c7353c78de6e540e85631dac06f4e",
      "tree": "095646cc7715410a3fdb415e0d18dca6ecb4b10a",
      "parents": [
        "6618662aee433d3fec1c92b41c4199ed24f53190"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Wed Nov 09 10:17:57 2016 -0800"
      },
      "committer": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Wed Nov 09 10:17:57 2016 -0800"
      },
      "message": "Makefile update\n\nChange-Id: I21a94ec0d2ca5ef457fb025cdef5c82e1c2b73b1\n"
    },
    {
      "commit": "6618662aee433d3fec1c92b41c4199ed24f53190",
      "tree": "5e5fe18dfc4b23c137b8d2bc9deb0ecef87c14a8",
      "parents": [
        "3c74d3b1fc6ad14854fd6d18f37c9b37567889e5"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 08 14:24:00 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 08 16:54:29 2016 -0800"
      },
      "message": "Remove generated artifacts from git\n\nChange-Id: I1d8f9a5a4519004618e2df87c28fdb8849b68c00\n"
    },
    {
      "commit": "68b9be3860d9ee41bb9a971a7f2215b5ab7d37ea",
      "tree": "0d92643c5dceadbc46ef376fb80516bb7992d6c2",
      "parents": [
        "9125b1a90ceff0e60c944a6430e8054cf36a0f76"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 25 11:57:04 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 25 11:57:04 2016 -0400"
      },
      "message": "Dockerizing ofagent\n\nChange-Id: Ic2ead67cedd74463a72efca8c3f5d74ea2433af8\n"
    },
    {
      "commit": "023ea7cbbc9482643579b92ab02b3ed104e1f575",
      "tree": "e75ec5bff25548904e2a8e358029cc5fe8bb6466",
      "parents": [
        "4ba198966634f48c11a7dfb5590b404b1b2a1f34"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Oct 16 19:30:34 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 01:38:54 2016 -0700"
      },
      "message": "Async/streaming gRPC client/server proto\n\nThis experiment was to fine-tune how we can implement\nasync gRPC client and server code inside a Twisted\npython app.\n\nChange-Id: I945014e27f4b9d6ed624666e0284cc298548adb3\n\nMajor cleanup of openflow_13.proto\n\nChange-Id: I4e54eaf87b682124ec518a0ade1a6050a6ec6da8\n\nRelocated openflow_13.proto to voltha\n\nChange-Id: I66ae45a9142d180c2c6651e75c7a1ee08aef7ef8\n\nRemoved forced utest from make build\n\nChange-Id: If0da58e9d135ebde6ca68c3316688a03a7b10f2f\n\ntwisted openflow agent first pass\n\nChange-Id: Ibe5b4727ccfe92e6fd464ccd3baf6275569ef5d3\n\nstore openflow derived files\n\nChange-Id: Ib3e1384bb2ca2a9c0872767f7b793f96b0a154e2\n\nMinor cleanup\n\nChange-Id: I1280ed3acb606121b616a0efd573f5f59d010dca\n\nFactored out common utils\n\nChange-Id: Icd86fcd50f60d0900924674cbcd65e13e47782a1\n\nRefactored twisted agent\n\nChange-Id: I71f26ce5357a4f98477df60b8c5ddc068cf75d43\n\nRelocated openflow agent to ofagent\n\n... and preserved obsolete working (non-twisted) agent under\n~/obsolete, so we can still run the olt-oftest and pass tests,\nunit the new twisted based agent reaches that maturity point.\n\nChange-Id: I727f8d7144b1291a40276dad2966b7643bd7bc4b\n\nolt-oftest in fake mode works with new agent\n\nChange-Id: I43b4f5812e8dfaa9f45e4a77fdcf6c30ac520f8d\n\nInitial ofagent/voltha operation\n\nChange-Id: Ia8104f1285a6b1c51635d36d7d78fc113f800e79\n\nAdditional callouts to Voltha\n\nChange-Id: If8f483d5140d3c9d45f22b480b8d33249a29cd4e\n\nMore gRPC calls\n\nChange-Id: I7d24fadf9425217fb26ffe18f25359d072ef38fa\n\nFlow add/list now works\n\nChange-Id: Ie3e3e73108645b47891cef798fc61372a022fd93\n\nMissed some files\n\nChange-Id: I29e81238ff1a26c095c0c73e521579edf7092e21\n"
    },
    {
      "commit": "a54b663f7fe41e222b069bd3ef3e97d3b725d9bd",
      "tree": "6d3c32a7284ad4c237e84fcaa3f72dc8bf3597c7",
      "parents": [
        "da4ef468cbd18c886d50a5af7a4f19e78eda233e"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 18 18:01:25 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 18 18:01:25 2016 -0400"
      },
      "message": "Adding a wait for containers condition\n\nChange-Id: I4601b9f9e2f17ccfaaa1fcc6c24eaf9e13dd3b38\n"
    },
    {
      "commit": "37a9bf8598001d303178fa2d481e214501004937",
      "tree": "08583c171f70b9a5660f2a330ee16143ae0a206c",
      "parents": [
        "b4b11afec1145a93b6e61c842be1dda92c5e9fa2"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Sun Oct 16 20:11:31 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Sun Oct 16 20:11:43 2016 -0400"
      },
      "message": "Integration test for the build.md file\n\nChange-Id: I93d25f1563636696a5f71471a06056eafee3e9e2\n"
    },
    {
      "commit": "74c1ef0e935e2790848ebab47c0eedd8f5feb45f",
      "tree": "6556bb7a64da87a54bba1c4091490c4cf7af2fc6",
      "parents": [
        "d47a5072528fd639d10878fb417c27f1d3339295"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Oct 12 21:17:42 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Oct 12 21:17:42 2016 -0400"
      },
      "message": "Address review comments of the kafka nbi\n\nChange-Id: I4bffdd92bb05d3f4d4b1b077f2ccf0f332204ed2\n"
    },
    {
      "commit": "220a677dfe60ec9a9a5c74df7d62b3927c737fdf",
      "tree": "5e20d1f1ac62c84a0052f576588b3f228b2d8f20",
      "parents": [
        "c51c065b01038381efb030cc7abdd3fcbe38eb75"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@tibitcom.com",
        "time": "Tue Oct 11 08:10:46 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@tibitcom.com",
        "time": "Tue Oct 11 08:10:46 2016 -0700"
      },
      "message": "Test submit.\n\nChange-Id: I1c6d9e2e7392cf33ff220a412634d8465ab2ccf0\n"
    },
    {
      "commit": "5cd64703098cf50d2ac0d7a0fadd68d1a5a1587d",
      "tree": "1471e7c1915c39da0bf013a09860dbbce79f3ed9",
      "parents": [
        "4536335b5f70b739e22d789da7a138c05b2bbacc"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 27 13:48:35 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 27 13:48:35 2016 -0700"
      },
      "message": "Chameleon rest-grpc gateway fetching and compiling\n"
    },
    {
      "commit": "86be6f169288f52d602e5b415fdc80c76df5d0c4",
      "tree": "f32eaea8033d9ec5206d112587c90be85e743bde",
      "parents": [
        "32dda55a7ff8244661aa7151e1cdc16d5eba2de3"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 27 09:56:49 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 27 09:56:49 2016 -0700"
      },
      "message": "Chameleon outline: a REST-to-GRPC gateway\n"
    },
    {
      "commit": "32dda55a7ff8244661aa7151e1cdc16d5eba2de3",
      "tree": "fed41d7eff5dde585f979de43937c99a1447e0f1",
      "parents": [
        "823620fdba7154224f3070c6cdb2dc406713e718"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 27 09:17:29 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 27 09:17:29 2016 -0700"
      },
      "message": "Split Dockerfile in anticipation of rest-gateway\n"
    },
    {
      "commit": "0650d1aa1dc187e0de8bc0a0c04b51bdf8f1f37c",
      "tree": "65a60a09868621cabeda08c5fd9dbb470c30b812",
      "parents": [
        "7be6241138ccc1876158f3a74056389bfc8aaf02"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Sep 26 17:29:25 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Sep 26 17:29:25 2016 -0700"
      },
      "message": "Expanded on experimenting with grpc server\n"
    },
    {
      "commit": "a6b09e37944a0dead4ea3a2cf590ee03f25b627e",
      "tree": "bd6443fa8c41525f0b78cfade70deb33a0f93720",
      "parents": [
        "31e29604d3fbd3d6b1db99092549ba7dd9a6be6b"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@tibitcom.com",
        "time": "Wed Sep 21 16:26:09 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@tibitcom.com",
        "time": "Wed Sep 21 16:26:09 2016 -0700"
      },
      "message": "Thin-case dev machine passing OLT-test with Tibit\n"
    },
    {
      "commit": "88bec0be5b12c74d8fcafb75329d3724fd821710",
      "tree": "34a23feb9c3844c968f89caa6acd37d5c95fa7ff",
      "parents": [
        "d0023a94768e7472e59e83984e47f10bba0fac2a"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Sep 21 15:59:16 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Sep 21 15:59:16 2016 -0700"
      },
      "message": "Remove make support for vagrant up\n"
    },
    {
      "commit": "a54f2ac5df7889261d5b27373e0d3ac5f4f21d50",
      "tree": "4b5a89321f8eb34c26d0cef069ad02eca01d6460",
      "parents": [
        "4161248cf648f9a326b4a4264210d2ecaaa5e391"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Sep 21 15:54:15 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Sep 21 15:54:15 2016 -0700"
      },
      "message": "Add support for protobuf API definitions\n"
    },
    {
      "commit": "4161248cf648f9a326b4a4264210d2ecaaa5e391",
      "tree": "4658cd79710ff99d0a421527476e730e79c4951d",
      "parents": [
        "ac9310d73488c6ed4054af33c4f7893ad41e8a5a"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Sep 21 12:26:20 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Sep 21 12:26:20 2016 -0700"
      },
      "message": "Make venv dir name OS specific\n\nThis is to allow the Vagrantbox to mount your local dev on a Mac, yet\nhave venv working even when it includes OS-specific binary files.\n"
    },
    {
      "commit": "950dff2f53bbfce090a32608e0a39282709b7253",
      "tree": "c429a17fcefa64a90e44514e4cbf5a68cd37bddc",
      "parents": [
        "edc88da27e90b8e622ea9751b395448859e3d701"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Sat Sep 17 16:12:34 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Sat Sep 17 16:12:34 2016 -0700"
      },
      "message": "Fixup flake8 to keep going and find all issues.\n"
    },
    {
      "commit": "edc88da27e90b8e622ea9751b395448859e3d701",
      "tree": "5078a75ab0464df09c3f44c0cf9ad0398f2c5d9e",
      "parents": [
        "daa1f6e70e16fe29826d781f9ee4e206268bf548"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Sat Sep 17 00:28:05 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Sat Sep 17 00:28:05 2016 -0700"
      },
      "message": "One step closer to goal.\n"
    },
    {
      "commit": "daa1f6e70e16fe29826d781f9ee4e206268bf548",
      "tree": "6fe516b8759dc1fcafa267d90db162a79257dbfb",
      "parents": [
        "ff82c3ee9a033265e49f5632f4aa8dc2dd28509b"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Sat Sep 17 00:17:31 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Sat Sep 17 00:17:31 2016 -0700"
      },
      "message": "Passing flake8 for new modules.\n"
    },
    {
      "commit": "5157de0ef22585d97aa49147cc2a4bc041c727fa",
      "tree": "380e6d55776fec8f909d95ec1111c7eb16d3be8c",
      "parents": [
        "c0a80c85d2d29dcf6385672f3fe173f387375fe8"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Fri Sep 16 15:20:37 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Fri Sep 16 15:20:37 2016 -0700"
      },
      "message": "Fixing all target for Makefile.\n"
    },
    {
      "commit": "c0a80c85d2d29dcf6385672f3fe173f387375fe8",
      "tree": "ba70c40b452748e69bd6ca7273952c73110aef01",
      "parents": [
        "0b15029cf0e78833b0e3d7fc89c266fae0d9b0da"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Fri Sep 16 15:17:45 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Fri Sep 16 15:17:45 2016 -0700"
      },
      "message": "Adding flake8 to help.\n"
    },
    {
      "commit": "84dfd2e46973220cb44b651264e873944c96eb4c",
      "tree": "28b043f37feaa414123888472108ff98a32cbd74",
      "parents": [
        "e060a7d35b6e75eb66a51f61681915bf5f0b14cf"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Fri Sep 16 15:06:34 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Fri Sep 16 15:06:34 2016 -0700"
      },
      "message": "Adding flake8 implementation.\n"
    },
    {
      "commit": "e65a36704f434b792ac7d78228da39785a928d92",
      "tree": "f9227facaed14ddf9c2c927271696db7d6c7cb43",
      "parents": [
        "de22bbc9de04c499f456886f599a44daef7640c2"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Wed Sep 14 21:36:52 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Wed Sep 14 21:36:52 2016 -0700"
      },
      "message": "Adding vagrant up to Makefile.\n"
    },
    {
      "commit": "f2da1d02db5ebd95f410c94a26364969ff9f460a",
      "tree": "34b7d6b28dc23bc2c8c9f323c2e3b8eb3d4a3612",
      "parents": [
        "d7c7c486c19744dc89b6d724401ea83582f960a1"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 13 23:21:35 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 13 23:21:35 2016 -0700"
      },
      "message": "Consul registration and kv interface added\n\nAdditional changes:\n- Reworked command line parsing\n- Added cleaner default handling, also reading certain environmen vars\n- Many new options\n- Docker compose file to start a consul + fluentd + voltha combo for\n  testing purposes\n"
    },
    {
      "commit": "b71c2a044b5805d2607b8d4775a662f64a26d87f",
      "tree": "ee12efd38d17efee3ff5fe9f49a3c982544478ba",
      "parents": [
        "eb56d71b28c59e957fd01371b4ba40ba035476bc"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Sep 12 13:12:07 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Sep 12 13:12:07 2016 -0700"
      },
      "message": "Initial log framework\n\nAlso:\n\n- Renamed voltha.py to main.py (due to module collision)\n- Added logging related dependencies\n- Twisted loop\n"
    },
    {
      "commit": "51af3395e6ce2e54079e670d31e202770f99a5e8",
      "tree": "27e0df31943de3e331a7c531b91af0c488b53e55",
      "parents": [
        "8fa9da058ff2333f980fd283925e60e92730fc35"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Sep 10 22:18:45 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Sep 10 22:18:45 2016 -0700"
      },
      "message": "More robust build + utest hooked up\n"
    },
    {
      "commit": "8fa9da058ff2333f980fd283925e60e92730fc35",
      "tree": "dc94302215cf6003d28d00d6a9a13d538a5d2bba",
      "parents": [
        "b09d88ff44f253542958d8e25ca40611314b9e90"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Sep 10 17:34:03 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Sep 10 17:34:03 2016 -0700"
      },
      "message": "Build steps explained\n"
    }
  ]
}
