)]}'
{
  "log": [
    {
      "commit": "ba59b25753473375e6e40f5bb7b5bddab7a9175f",
      "tree": "f630bdd819ca69effa481ec85cc5d1b8e4b60402",
      "parents": [
        "7d7bb964c1f6abd2e8614a089c70ed09b635cd5b"
      ],
      "author": {
        "name": "Chip Boling",
        "email": "chip.boling@adtran.com",
        "time": "Fri Apr 21 14:49:41 2017 -0500"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu May 04 07:58:18 2017 -0700"
      },
      "message": "The Adtran OLT Adapter requires the zeroMQ protocol provided by the twisted txZMQ package\n\nChange-Id: If2e5ee9ba8b01d1b938ad5e8c3261d4123720a77\n"
    },
    {
      "commit": "52198b9c9cf6b5fc4780679bc3eb53182895bab1",
      "tree": "9afd2c4a2db677785fe23897281445657a71eeed",
      "parents": [
        "b079631b45f47abbc37d82d8b90269b0063fa37c"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Mar 02 13:44:46 2017 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Mar 02 13:44:46 2017 -0500"
      },
      "message": "CORD-898: Initial integration for alarms support\n\n- Introduced an AlarmEvent type\n- Provided the necessary API to propagate the alarms\n\nChange-Id: I285cab38cd8896508a820c8aea592819e0242ed5\n"
    },
    {
      "commit": "05f2452a6c8252b022231e745357c5bfc52bc133",
      "tree": "2828e16b7fe29d6e64462df73e6c152dabc3a7df",
      "parents": [
        "66aa41d5b0c8a13ea60634a04db89768b9114e28"
      ],
      "author": {
        "name": "Steve Crooks",
        "email": "scrooks@ciena.com",
        "time": "Mon Feb 27 13:32:27 2017 -0500"
      },
      "committer": {
        "name": "Steve Crooks",
        "email": "scrooks@ciena.com",
        "time": "Mon Feb 27 13:55:59 2017 -0500"
      },
      "message": "Fix issues with CLI introduced by up-rev of cmd2 module from 0.6.9\nto 0.7.0.\n\nChange-Id: I5c1badb856c43331c68c7979e4b0a006c449ae20\n"
    },
    {
      "commit": "800dbe66192ecbefc7576d5655cc6df15b5d2c01",
      "tree": "df1ddd99639350001b2fdc7447743cfbccf157ff",
      "parents": [
        "ab966e5680510c60d241011ab48d32093aa7745c"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Feb 09 23:59:43 2017 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Feb 10 00:17:21 2017 -0800"
      },
      "message": "Important protobuf version fix\n\nThe recently release 3.2.0 version of protobuf (installed by pip)\nbreaks Voltha. For now, we force all things Voltha to use the proven\n3.1.0.post1 version of protobuf. The issue should be analyzed but\nfor now this fix will unblock folks.\n\nChange-Id: I12498273492366518736681231234650245482a8\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": "9b485fb6348b2c331f121b74ff09c1ec70b763ef",
      "tree": "c424709602056a8ba4b63cca302afadfbd4b9069",
      "parents": [
        "31c3696d27ef1035e87d0c6f215244498f13c96c"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 26 23:11:15 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 27 10:48:03 2016 -0800"
      },
      "message": "Prep for docker-only tests\n\nChnages to support more production-like tests where all\ncomponents are running as Docker containers. Specific\nchanges:\n- Expanded Vagrant memory to 6G to have room\n- Chameleon to cope with premature service lookup before\n  Voltha is self-registered (can happen when docker-compose\n  starts the \"world\"\n- Add missing termcolor package\n- Allow CLI to use Consul for endpoints\n- 2nd external ponmgmt bridge for Voltha\n\nChange-Id: Ib2471784a5aafbfd9c611ebf293d7f81f61dd75b\n"
    },
    {
      "commit": "d230de69ca2f9d62b27ab203b63bc22d0469dc99",
      "tree": "bfe6f92fdfaddcb1c018ed5c44c31d50873757a9",
      "parents": [
        "a133a456a5c93449a6626223a1f7f8b0394d67e3"
      ],
      "author": {
        "name": "babunaveen",
        "email": "naveen.babu@radisys.com",
        "time": "Thu Dec 22 14:27:59 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Dec 23 11:27:26 2016 -0800"
      },
      "message": "for pulling the contents from python-consul and afkak repos change from git+git to git+https\n\nChange-Id: Ib5baec626caa8c0d408e1e0029505f3f3def1590\n"
    },
    {
      "commit": "a133a456a5c93449a6626223a1f7f8b0394d67e3",
      "tree": "2dfbaa0989059a99168a1b33af9f84b0b145f421",
      "parents": [
        "628d3130c4bc5bacc805b5d1adde0a313e0299a8"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 22 01:26:57 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 22 01:26:57 2016 -0800"
      },
      "message": "First, very raw version of a primitive CLI\n\nChange-Id: I61e13297a7c04c357a9d15c4399d137b055c9420\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": "0a5bc30698d60bacd0f40a40db6ac61c58d6c33c",
      "tree": "ee56c32ac926d6e87cf82e58b95a88cd4a273dc7",
      "parents": [
        "66862035accde9e1dcb32f7c711465d00e543af8"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 07 21:13:54 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 07 21:13:54 2016 -0800"
      },
      "message": "Remove pygraphviz as requirement\n\nChange-Id: I1ea03904d88304ad9e85031ea24f08664425b8dc\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": "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": "91350ebd11fc030359a79332bfe18e75da139d54",
      "tree": "d2307a6b468f41367acc9ecad67674d439a4d21b",
      "parents": [
        "d70cd4de56b7d8b57493a2d1077749d7c58fb3fe"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Nov 05 15:33:53 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Nov 06 13:46:28 2016 -0800"
      },
      "message": "Async frame receive/send module\n\nChange-Id: I75b6ecdecf05f2c72b3b0fa1191d849b7d8e67ef\n"
    },
    {
      "commit": "4c43525b70b09b2ef7267a984c8fe9dd5ba3aa2f",
      "tree": "e1977383b7ff23033f9ae18d8db0b2502b283936",
      "parents": [
        "2bdb6b31e4b86a5ae88fbceb70bd05143cef318b"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 03 23:21:32 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 03 23:21:47 2016 -0400"
      },
      "message": "experiments with converting yang to protobuf with limited types\n\nChange-Id: Icae31cbd779ff6f1efb6b5259e749436a7ee9bbf\n"
    },
    {
      "commit": "6f319a3c3ae8772c80205ec1c5878baeb95ff29a",
      "tree": "cc80e13dedabf38103939fbd466c4c3d52f717c4",
      "parents": [
        "68b9be3860d9ee41bb9a971a7f2215b5ab7d37ea"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 25 23:06:58 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 25 23:06:58 2016 -0400"
      },
      "message": "Specifying cython version to use\n\nChange-Id: I6c0f03e582c33c57b5a6c7fe5f46429e010dd259\n"
    },
    {
      "commit": "da4ef468cbd18c886d50a5af7a4f19e78eda233e",
      "tree": "12a5fa948d1e892ab5ff40cc16a5b0ac9f7248af",
      "parents": [
        "37a9bf8598001d303178fa2d481e214501004937"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Oct 17 14:22:51 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Oct 17 14:22:51 2016 -0400"
      },
      "message": "Remove python-libpcap, add libpcap-dev to ansible.  Remove pypcap from the requirements file\n\nChange-Id: Ic1c17975d2ea7bf4966634e317334136c6dffdde\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": "676ebbb92b64bb6fe4d50bcfc83a34a36dd4deaa",
      "tree": "72169bc82138da01c0d3078f2741eb5eac342814",
      "parents": [
        "f1c3c031f90419e19725193fb71fe517fdcd8310"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@tibitcom.com",
        "time": "Thu Oct 13 22:16:10 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@tibitcom.com",
        "time": "Thu Oct 13 22:16:10 2016 -0700"
      },
      "message": "Adding netifaces pip package.\n\nChange-Id: I94e43bd5726998c89d6f0549e074026e1a5a5f97\n"
    },
    {
      "commit": "da11dd78161aa28756298e2e6ea47d31f5a2ee00",
      "tree": "32fb2d6f333f0ee2f52e17bca98581e6442ea347",
      "parents": [
        "441deddb38e3b92abf728ab3c570c2fefad0c48f"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Oct 05 17:42:36 2016 -0700"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Oct 05 17:42:36 2016 -0700"
      },
      "message": "This commit consists of:\n1) Change kafka/zookeeper ports mapping to allow for scaling via\n   docker-compose\n2) Use the afkak consumer example when subscribing to kafka messages\n3) Remove dependency on kafka-python\n4) Update the Build.md file with instructions on how to listen to kafka\n   messages\n"
    },
    {
      "commit": "441deddb38e3b92abf728ab3c570c2fefad0c48f",
      "tree": "406cb7d4b1ef45938123a826784db7a9784e3355",
      "parents": [
        "bc601b7042a58b7c1b917c6c4dd20faad6444f71"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Oct 05 14:44:26 2016 -0700"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Oct 05 14:44:26 2016 -0700"
      },
      "message": "Minor cleanups\n"
    },
    {
      "commit": "b95fe9a29fcd7d38a410bf52d998dd5de566957d",
      "tree": "0cefdb15315d7269494d5a18487c3e16a2e50884",
      "parents": [
        "1504408a3591f5dad8f9bdd85f198f455a5f28fc"
      ],
      "author": {
        "name": "khen",
        "email": "knursimu@ciena.com",
        "time": "Wed Oct 05 11:15:25 2016 -0700"
      },
      "committer": {
        "name": "khen",
        "email": "knursimu@ciena.com",
        "time": "Wed Oct 05 11:15:25 2016 -0700"
      },
      "message": "This commit consists of:\n1) Provide a kafka client to publish events to kafka brokers\n2) Provide zookeeper and kafka docker containers for local testing,\n   will not be present in production\n3) Sends a regular heartbeat to the kafka broker from voltha to\n   exercise all the components\n4) Provides a basic kafka consumeri (requires kafka-python to be\n   installed)  to read the messages off the local kafka broker -\n   this time it is only heartbeat messages\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"
    },
    {
      "commit": "361dc59a0f09c6b665f65cbdb31e3c5d2b1ded03",
      "tree": "221b72695ad4026b98d332926d51348a7169debb",
      "parents": [
        "eb435072c37937b1e6bdc3b30b0e0631c9c570af"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Sep 25 22:25:23 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Sep 25 22:25:23 2016 -0700"
      },
      "message": "Getting docker working after grpc added\n\nThis required (unfortunately) at least for now to move to an\nUbuntu image instead of alpine. This is becasue the grpcio-tools\nand grpcio python libs use cython which in turn has some stronger\ndependencies on runtime packages, and we could not yet resolve\nall the issues arising on alpine.\n\nChanges:\n- committed *.desc and *_pb2.py output files so that protoc tools\n  are not needed when building dockerimage\n- moved google protoc extension files (http.proto and annotations.proto\n  to under python source tree. Otherwise they were not copied into\n  the docker image\n- created Ubuntu Dockerfile while we retained the old apline file\n  so that we can resurrect the alpine version later\n"
    },
    {
      "commit": "eb435072c37937b1e6bdc3b30b0e0631c9c570af",
      "tree": "a9498cca90370d92c53854fc9babc31d8b0fe4fa",
      "parents": [
        "d1c9f235279f23db0ca2664d305c8666da360668"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Sep 23 17:10:49 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Sep 23 17:10:49 2016 -0700"
      },
      "message": "Add initial gRPC server\n"
    },
    {
      "commit": "d1c9f235279f23db0ca2664d305c8666da360668",
      "tree": "25df7cfcbae6e9f06b7409b4a703da144b5626c8",
      "parents": [
        "cfd15e5ffaef251e44d0a1c4596fd054bba77a57"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Sep 22 23:18:38 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Sep 22 23:18:38 2016 -0700"
      },
      "message": "Backing out pypcap to save build\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": "ac9310d73488c6ed4054af33c4f7893ad41e8a5a",
      "tree": "f3af6b0cda42cfc3c64890ed8747eec81b08cb35",
      "parents": [
        "adcc5562a9a01f0bf4b0a9cc0b793d9bd2b54863"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 20 12:56:35 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Sep 20 12:56:35 2016 -0700"
      },
      "message": "Work coordinator for local assignments added\n"
    },
    {
      "commit": "418fdc849d7a9249486daf3fc65b639a7b7a605e",
      "tree": "84402eb003b3840d7c8442aa47c4873ddebce64d",
      "parents": [
        "109db836dc2c5f622d31f1338dc4fe383233df68"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@tibitcommunications.com",
        "time": "Fri Sep 16 22:51:15 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@tibitcommunications.com",
        "time": "Fri Sep 16 22:51:15 2016 -0700"
      },
      "message": "Working openflow agent for ONOS OLT-test. Needs integration to VOLTHA.\n"
    },
    {
      "commit": "70cb39fe66b41e13f9d58e4697308f3b430d682d",
      "tree": "9312a2fa71d2525af1512c44b7682d26a02357f9",
      "parents": [
        "a4761669dfcc68e17fa4844e334c763b39050663"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Sep 16 15:58:34 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Sep 16 15:58:34 2016 -0700"
      },
      "message": "Cleaned up requirements\n"
    },
    {
      "commit": "e060a7d35b6e75eb66a51f61681915bf5f0b14cf",
      "tree": "3b43577206ae704d5fb71b3146742f261fff4798",
      "parents": [
        "519f856e6019ab49fb62515a54855a3481d112ab"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Sep 16 11:08:24 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Sep 16 11:08:24 2016 -0700"
      },
      "message": "Membership ephemeral entry and initial leader election\n\nAlso:\n- env.sh to load what\u0027s needed for dev\n- refactored main\n- async consul client instead of blocking\n"
    },
    {
      "commit": "8fc868763a611670c80c176669538f7246cabaf9",
      "tree": "84c9b6e2f00276de4c50026d239a96946c1e1f9c",
      "parents": [
        "9e3718ee249e1b1462ee0120a127d484ffda73b8"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Sep 14 00:31:05 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Sep 14 00:31:05 2016 -0700"
      },
      "message": "Add minimalistic REST framework using klein, and a health check REST API to start with\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"
    },
    {
      "commit": "fb29566761e92ad2abdcbd9bbda312a5f0593f9e",
      "tree": "9da70f0183b1ec5e3b02d78efb77363da73ef02f",
      "parents": [
        "593c49a442e4ef7698c4c33d984b26e20fe0126f"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Sep 09 00:38:30 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Sep 09 00:38:30 2016 -0700"
      },
      "message": "Removed gevent and numpy from requirements\n"
    },
    {
      "commit": "58649151525d1e904b74c03d0ec4b72e7ba3b846",
      "tree": "995c43807b8f2348c833a1f34d242f4a2a53ef11",
      "parents": [
        "e2c127fd1de18bdbd5c705e3c09db170ffafa3fd"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Thu Sep 08 16:48:09 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Thu Sep 08 16:48:09 2016 -0700"
      },
      "message": "New requirements.txt\n"
    },
    {
      "commit": "0c6409664fee644709dca5ddea96921825301d42",
      "tree": "5abcd1b851e4dda04e24cd912d8536241e8e8771",
      "parents": [
        "859e284cb674a097cb97d6372fbfc500dbfcee6e"
      ],
      "author": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Thu Sep 08 16:32:18 2016 -0700"
      },
      "committer": {
        "name": "Nathan Knuth",
        "email": "nathan.knuth@cyaninc.com",
        "time": "Thu Sep 08 16:32:18 2016 -0700"
      },
      "message": "requirements file for pip.\n"
    }
  ]
}
