)]}'
{
  "log": [
    {
      "commit": "47324639d0ba1fce3179dffef8bba44459e5fda6",
      "tree": "b5e934222f0338c00154c8c694ee9c1be1d310aa",
      "parents": [
        "62e1b784b6853490eeb2e30b0afde5b7c1aa2b27"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 20 00:50:33 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 20 00:50:33 2016 -0800"
      },
      "message": "Minor fix to handle unconnected ofagent\n\nChange-Id: I9e2b3cce0cb1bdceaf2e5619622401f1badf4d6b\n"
    },
    {
      "commit": "62e1b784b6853490eeb2e30b0afde5b7c1aa2b27",
      "tree": "442e45cba9645274723c0b50ba92e0d4c13274ad",
      "parents": [
        "348d193a3429cd791b84a9df85e035d81407c117"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 20 00:46:33 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 20 00:46:33 2016 -0800"
      },
      "message": "Fix import error in tibit_onu\n\nChange-Id: I973d23049e5be86290681e546c8b4f37760e09a1\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": "781eeb6ad440941ab90f9f9dbd5d6522e9c71362",
      "tree": "e267e592dfe8ea11e56a5121d6e6bd022f4b6d7a",
      "parents": [
        "e3ece3ca8f50803e7b1d7eb25aca3c692f90448f"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 20 00:06:17 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 20 00:06:17 2016 -0800"
      },
      "message": "Relocated experimental file\n\nChange-Id: Ie0b7d4add3cbcdf312446045056f9aaddeb55aa8\n"
    },
    {
      "commit": "e3ece3ca8f50803e7b1d7eb25aca3c692f90448f",
      "tree": "ffa5cdd23f850737a7091e279daebc23290f10d8",
      "parents": [
        "217a12eb75007ad814269eb4b8e63108c0d81845"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 23:32:38 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 23:32:38 2016 -0800"
      },
      "message": "Added OMCI message parsing tests\n\nChange-Id: Ic864446241c3507dcfb389c7e774d0aa79de3b55\n"
    },
    {
      "commit": "217a12eb75007ad814269eb4b8e63108c0d81845",
      "tree": "ccd7f4abef105f199f469d22b2448f88b0969e80",
      "parents": [
        "7b312564a62e175fc385646a07e2acd3996d0cb0"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 16:37:55 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 16:38:04 2016 -0800"
      },
      "message": "Propagate port change to SDN controller via OF13\n\nThis change adds plumbing to propagate new logical port\nadditions up to the SDN contoller via OpenFlow.\n\nChange-Id: Ic02586b096144c3697a0974ebbc8a7be8760bef8\n"
    },
    {
      "commit": "7b312564a62e175fc385646a07e2acd3996d0cb0",
      "tree": "89c6c8bc49ad8ad845d3f866713d2ba0738e9560",
      "parents": [
        "927b6bbd088a4293e5af51946013823566fe3fc8"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Dec 16 15:19:46 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 11:07:11 2016 -0800"
      },
      "message": "Added protobuf objects and imports\n\nChange-Id: Ifbd69581890cb80c2b69f5c3079adcf709616bc3\n"
    },
    {
      "commit": "927b6bbd088a4293e5af51946013823566fe3fc8",
      "tree": "488004a73d10d29791152cfe9ca9343e89340dd0",
      "parents": [
        "e0acd8fdf327b8b54cb36a2000eacd424ad80a65"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Sun Dec 11 17:51:21 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 11:06:52 2016 -0800"
      },
      "message": "OLT Initialization state machine\n\nThis statemachine takes a disconnected OLT to an init\nstate. It follows the scapy automata design pattern.\nIt allows for state transitions to be actuated from\na command or the reception of a packet.\n\nChange-Id: I8dc78c977099b67f76795dcb6ea2eeb458dd55a6\n"
    },
    {
      "commit": "e0acd8fdf327b8b54cb36a2000eacd424ad80a65",
      "tree": "b749eb31095778d89e3c0ae0b62f16098d24dfc8",
      "parents": [
        "653b1b458e32528d46ce9b24b751331465ef5131"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Dec 16 14:53:55 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 11:06:18 2016 -0800"
      },
      "message": "OMCI library expansion\n\nIncludes:\n- Minor refactoring to accommodate increased codebase\n- Support and test for all requests expected to be used\n  for the Broadcom ONU with Maple\n- Much increased coverage for OMCI message types\n- Many new entity types defined now\n\nChange-Id: Ib0a1c396276b194a0aa08bede3b00b95a6a22d1e\n"
    },
    {
      "commit": "653b1b458e32528d46ce9b24b751331465ef5131",
      "tree": "63f61a8837f06a9420cb1a9c0de66f41899837a1",
      "parents": [
        "3bfff6645d489ec9982d35b01d002043902b3826"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 14 23:41:49 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 19 11:05:48 2016 -0800"
      },
      "message": "Manhole ssh port for troubleshooting\n\nChange-Id: I2c92a6108e333664c12f97da88a49a3b80a4d4a7\n"
    },
    {
      "commit": "3bfff6645d489ec9982d35b01d002043902b3826",
      "tree": "63f61a8837f06a9420cb1a9c0de66f41899837a1",
      "parents": [
        "cc153aaac104650fd22b0281bb12c1c90cdef8b8"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 14 23:41:49 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 14 23:41:49 2016 -0800"
      },
      "message": "Manhole ssh port for troubleshooting\n\nChange-Id: I2c92a6108e04b664c12f97da88a49a3b80a4d4a7\n"
    },
    {
      "commit": "cc153aaac104650fd22b0281bb12c1c90cdef8b8",
      "tree": "e1080617b39055209d9b3a5a9bd89fa43b585a3d",
      "parents": [
        "a8789e0aef0063807f6606d7c3a4486f7c4c426d"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 14 02:28:59 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 14 02:28:59 2016 -0800"
      },
      "message": "Maple OLT and Broadcom ONU adapter skeletons\n\nChange-Id: I09729d17a3be221a64f3261a039dd9809a1ad65b\n"
    },
    {
      "commit": "a8789e0aef0063807f6606d7c3a4486f7c4c426d",
      "tree": "c014538807a261d4cae6d255934ab918e1e63de8",
      "parents": [
        "f7722f944b55db712c679a19aa2357407dbe19fa"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 14 01:55:43 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 14 01:55:43 2016 -0800"
      },
      "message": "Helper script to show flows\n\nChange-Id: I9f8b436c5a1af6c7e49c2d7902e9333ae8ce1ec5\n"
    },
    {
      "commit": "f7722f944b55db712c679a19aa2357407dbe19fa",
      "tree": "03d5e5967dd6e3d06736bbc6da812b851013d292",
      "parents": [
        "50de7c409d13517642a26c9f1558fd721e88ac55"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 13 17:54:30 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 13 17:54:30 2016 -0800"
      },
      "message": "Passing depth arg to all Get* APIs\n\nChange-Id: I50f27a7e19f3483bc9f658d1b9f08381fe7f8ceb\n"
    },
    {
      "commit": "50de7c409d13517642a26c9f1558fd721e88ac55",
      "tree": "f004992cd10c9b2cb9133d1a2fc8596f8ceaaa36",
      "parents": [
        "c69bd218e5111c58ba37bf3ab459d17d16fabbdd"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 13 15:39:07 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 13 15:39:07 2016 -0800"
      },
      "message": "Handle case when flow is defined before its group\n\nChange-Id: I38230af845d562af67d1ee2b32529211972585d6\n"
    },
    {
      "commit": "c69bd218e5111c58ba37bf3ab459d17d16fabbdd",
      "tree": "1456a95979feccfa35e0d70d78d69163e3da4b69",
      "parents": [
        "afafff33a17ba803b241a938903723e1af46b169"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 13 15:13:41 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Dec 13 15:13:41 2016 -0800"
      },
      "message": "Adjust priority to collapse flows\n\nChange-Id: I41ff03788f0d9483bbdd33808c42d42dc52c248b\n"
    },
    {
      "commit": "afafff33a17ba803b241a938903723e1af46b169",
      "tree": "7a13e67fc2f71d9a617e8596aaf0beebfecbdd82",
      "parents": [
        "91730da3a686e7b2ebb74316aaed366ff58fae81"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 23:14:09 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 23:14:09 2016 -0800"
      },
      "message": "Comprehensive flow tables splitting test\n\nChange-Id: I255bdb7f984e97ff1820f17921c8c2a018500f32\n"
    },
    {
      "commit": "91730da3a686e7b2ebb74316aaed366ff58fae81",
      "tree": "70be87f6d78c9965b160e8864d8c6613ca1aa4bd",
      "parents": [
        "83fab675a96de3bb966fe3c5612b7a301948ff89"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 12:54:38 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 18:27:27 2016 -0800"
      },
      "message": "Reintegrate with olt-oftest\n\n* Added updated notes on how to run voltha with olt-oftest\n  in fake_dataplane mode (for now)\n* Relocated test_flow_decompose to unittest\n* Added new comprehensive unit test for LogicalDeviceAgent.\n  Note that this class covers the following important\n  business logic:\n  * handling flow_mod and group_mod requests coming from the\n    NBI\n  * building route table and default flows/groups tables\n    for the physical devices\n  * performs flow decomposition from the logical device\n    flows/groups to the physical device flows/groups\n  All three functions are covered by tests now.\n* Many small fixes/imporvements pciked up by the tests.\n\nChange-Id: I34d341830e39bec29bcb8a2ed2eaf2027595c0e3\n"
    },
    {
      "commit": "83fab675a96de3bb966fe3c5612b7a301948ff89",
      "tree": "d4cb0cdbeb21de45194c013618c7f059b2db035c",
      "parents": [
        "64b6834844197903a1d7271940f51245647f5768"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Thu Dec 08 14:11:36 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 18:25:53 2016 -0800"
      },
      "message": "removing a few extra spaces from BUILD.md\n\nChange-Id: I2fa71add26f69c2ea3e71b5c6ac483f515b8b12b\n"
    },
    {
      "commit": "64b6834844197903a1d7271940f51245647f5768",
      "tree": "79918d81fa2930dce3677f2a26b18f68d3040259",
      "parents": [
        "54e3e292e5a0c72cd5ab9a0fd35df051dac20845"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Thu Dec 08 11:10:50 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 18:25:53 2016 -0800"
      },
      "message": "Final works on vagrant voltha-base box with BUILD.md and Makefile\n\nChange-Id: Id4b1e1a5dbc07eb15a106a5bb86967dceb978f15\n"
    },
    {
      "commit": "54e3e292e5a0c72cd5ab9a0fd35df051dac20845",
      "tree": "bca281bff58fd35f9b30325a8da0688617d10a77",
      "parents": [
        "1f564ca9e2f623d2e3774efd8c765a8bd02f8151"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Tue Nov 29 14:32:50 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 18:25:53 2016 -0800"
      },
      "message": "Start of work on the vagrant-base md file\n\nChange-Id: Icf8ed1a882aca6afae48e1328c5e8760fb94e9ca\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": "9ad4569b8562999bfb2cad4d6281884d969e8666",
      "tree": "eb35b6777c279def6f2f2e6287270932e5e6b3ab",
      "parents": [
        "1b7c03627ddc934fee8ab96a42eb3c0b69709999"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 10:37:54 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 10:37:54 2016 -0800"
      },
      "message": "Small utility to automate Grafana setup\n\nChange-Id: I99f413c979bb1e27adf7fdbbdd67f7f2e0e23045\n"
    },
    {
      "commit": "1b7c03627ddc934fee8ab96a42eb3c0b69709999",
      "tree": "fe788ebac02d698f7eb1a4fcc2349a57dc2c5f0c",
      "parents": [
        "aa4626e3d2ce53813090a5555ee1c3e2761c3624"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 09:45:47 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Dec 12 09:45:47 2016 -0800"
      },
      "message": "Minor fixes to grafana\n\nChange-Id: I3143b4c699be949d4b0ed0b2d70446dac16e0360\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": "99509d3e23b35b79fded77ca20004ed54cc10ddd",
      "tree": "66c154156005de11b2e5a4d74fc371aab56cc86c",
      "parents": [
        "89a27307b78281fa7d90a2518aec81723927ffdd"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Dec 10 16:41:45 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Dec 10 16:41:45 2016 -0800"
      },
      "message": "Even bus connected to Kafka publisher\n\nChange-Id: I44e3d732f9689bfa7b46e274eb062b825645d450\n"
    },
    {
      "commit": "89a27307b78281fa7d90a2518aec81723927ffdd",
      "tree": "b1c85bcd0a0475c88b7516739d30e38a5f4ab798",
      "parents": [
        "29d10af098e4b77b9e8636ffccb4589423e1c357"
      ],
      "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": "Sat Dec 10 12:03:38 2016 -0800"
      },
      "message": "Improved FrameIO support and proxy messaging\n\nSpecific changes:\n- FrameIO support for Mac OS X (making testing easier)\n- Message passing between root and child devices implemented\n  (example use in simulated_olt and simulated_onu adapters\n- Making FrameIOMgr accessible via registry so that modules\n  can easily reach it\n- Making \"main\" to be a registered component so that command\n  line args and config file based info is accessible to all.\n- Minor clean-ups and improvements\n\nChange-Id: I6812dd5b198fef5cb19f17fc8d7948d3fba8b625\n"
    },
    {
      "commit": "29d10af098e4b77b9e8636ffccb4589423e1c357",
      "tree": "1a911c9c830fb28a1cfdb3b19dc13b6937129644",
      "parents": [
        "a17f3ec5ef56f5e2427e1a5029336158c33ac848"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Dec 10 10:38:32 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Dec 10 11:44:45 2016 -0800"
      },
      "message": "Switching Vagrant box to Xenial\n\nChange-Id: If874cace314e0a1a4e9934a8973e197a656c5c86\n"
    },
    {
      "commit": "a17f3ec5ef56f5e2427e1a5029336158c33ac848",
      "tree": "dcb206c574cf9d4d7bcb591506b31d936138a31f",
      "parents": [
        "dc65e76b3e999c41535921907ef3c8922103642b"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 08 14:55:49 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 08 14:55:49 2016 -0800"
      },
      "message": "Provide command line arg access to any module\n\nChange-Id: I48d5c13062d1be5fef6be9e258e1820274733779\n"
    },
    {
      "commit": "dc65e76b3e999c41535921907ef3c8922103642b",
      "tree": "a82d026ec9b01caa94340b570bb7751f8e019bac",
      "parents": [
        "ed09160773f9be60ec9598dd8039f2a5eb1ec073"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 08 14:34:38 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 08 14:34:38 2016 -0800"
      },
      "message": "Commands to activate Tibit OLT\n\nChange-Id: Ifb40e9eaf2505f9e98e80e439e010a9950171730\n"
    },
    {
      "commit": "ed09160773f9be60ec9598dd8039f2a5eb1ec073",
      "tree": "212c256f98be685ee6cd47786f0c06e7e92167cc",
      "parents": [
        "c5c5d10045a8e0aaf38388461cf3e9b7988845f7"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 08 13:36:38 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Dec 08 13:36:38 2016 -0800"
      },
      "message": "Tibit OLT/ONU adapter skeletons\n\nChange-Id: I2ac9e7d7600ebde1eda764410ec59f53273fccc1\n"
    },
    {
      "commit": "c5c5d10045a8e0aaf38388461cf3e9b7988845f7",
      "tree": "60e05a183fd940fa2eab1cfe12323a6bac020575",
      "parents": [
        "0a5bc30698d60bacd0f40a40db6ac61c58d6c33c"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 07 21:12:27 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 07 22:36:43 2016 -0800"
      },
      "message": "Define and wire in bulk flow update adapter API\n\nThis adds support for defining bulk or incremental\nflow update capability on a per device type basis\nand implements the callout mechanism.\n\nIt also defines 5 new API entries for proxying\nmessages from a child-device adapter (e.g. ONU adapter)\nto the actual device as well as the APIs for registering\nand receiving async messages from a device via a\nparent device acting as a proxy. The implementation\nof this is left for the next PR.\n\nChange-Id: Ic48a458c170083842b6bc674d675b5b60c0827f6\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": "00d9a842344958e9361aa02f15775f9151b3eab9",
      "tree": "5a0d7a3202a5abef970fe6f870d91e908258a498",
      "parents": [
        "ee8d0b50900f0f40f2170f6c74d85b1ffffa59d8"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 23 11:18:23 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 07 11:50:29 2016 -0800"
      },
      "message": "Major rework of gRPC handling (do not merge yet)\n\nIncludes the following chages:\n\n* Refactored proto files\n  - separation of logical devices vs devices\n  - common flow related message types moved to openflow_13\n  - most RPC is defined in voltha.proto now\n* Expanded RPC definitions to cover now most of what we\n  need (a few device provisioning RPCs are still missing)\n* Reworked RPC handlers to work with new config tree\n* Implemented test cases for all existing RPCs, tested via\n  chameleon\u0027s REST service\n* Did away wih the OrderedDict internal representation\n  in the config nodes (3x performance boost on bulk\n  add, and negligible penalty in other ops)\n* Refactored transacton merge handling to align with\n  new structures\n\nChange-Id: I3740ec13b8296943b307782e86e6b596af78140e\n"
    },
    {
      "commit": "ee8d0b50900f0f40f2170f6c74d85b1ffffa59d8",
      "tree": "da355f02ccf885ae834b9b78fe4281364f4523f3",
      "parents": [
        "aab8a7f9f62ec1b87a2788de15f444f2a5f6c98f"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Dec 05 15:28:29 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Dec 07 00:44:17 2016 -0800"
      },
      "message": "Upversion protobuf library and compiler from 3.0.0.7 to 3.0.0.9 to\nfix a make failure.\n\nChange-Id: I2ce0af811932c62d657d79949b02eed280e92273\n"
    },
    {
      "commit": "aab8a7f9f62ec1b87a2788de15f444f2a5f6c98f",
      "tree": "24f1013cdc1513fc56f7a888cbcd6e326270907d",
      "parents": [
        "a820d24f9242e4524d9740f6c04537c37db219fd"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Thu Dec 01 13:28:01 2016 -0800"
      },
      "committer": {
        "name": "Ali Al-Shabibi",
        "email": "ali@onlab.us",
        "time": "Tue Dec 06 15:27:34 2016 -0800"
      },
      "message": "adding sniffing ability\n\nChange-Id: I8b9fbe270db5d5ddb98b5711edea547180ee14b9\n"
    },
    {
      "commit": "a820d24f9242e4524d9740f6c04537c37db219fd",
      "tree": "504ebdfb5cdb630e89ac40e461f5ac0db60d2429",
      "parents": [
        "05fb71f7c46d5cd358ce475a73934f852e1e9eeb"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Tue Nov 29 14:49:34 2016 -0800"
      },
      "committer": {
        "name": "Ali Al-Shabibi",
        "email": "ali@onlab.us",
        "time": "Tue Dec 06 15:27:21 2016 -0800"
      },
      "message": "Returning an appropriate descriptor\n\nChange-Id: Iaf42375ed4b58a4be28e1a9faec9854e4595b977\n"
    },
    {
      "commit": "05fb71f7c46d5cd358ce475a73934f852e1e9eeb",
      "tree": "f20f9f549b1a31dd3d9d8576b5830715c6c9ec2c",
      "parents": [
        "a7b842ae84a7c5e92f84601266634c01afb80bbf"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Sun Dec 04 16:08:29 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Dec 04 23:43:54 2016 -0800"
      },
      "message": "Podder now runs with an associated thread pool.\n\nThis allows podder to parallelize requests to docker.\n\nChange-Id: Iacae80a63bcd68ef7b471d63dbb41b7314d3af20\n"
    },
    {
      "commit": "a7b842ae84a7c5e92f84601266634c01afb80bbf",
      "tree": "6ed715cde15b24848301e4838a43918c1fcb610d",
      "parents": [
        "3869d8ddfd092842b6d156b07334ac27f6390eb6"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Sat Dec 03 23:28:42 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Dec 04 23:43:10 2016 -0800"
      },
      "message": "This commit consists of:\n1) Add session management to netconf\n2) Modularize the rpc call\n3) Improve the error handling\n4) Small bug fixes\n\nChange-Id: I023edb76e3743b633ac87be4967d656e09e2b970\n"
    },
    {
      "commit": "3869d8ddfd092842b6d156b07334ac27f6390eb6",
      "tree": "2950c8c65a4518d86f10d3d9b812a52dbb53533f",
      "parents": [
        "354487260b26edb93441a72b6e413fe335edd2fc"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Nov 28 20:44:28 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Dec 04 23:43:10 2016 -0800"
      },
      "message": "This is the initial commit of the netconf server code.  It consists\nof the following:\n1) The server is built using Twisted Conch\n2) It adapted an existing opensource netconf server (https://github.com/choppsv1/netconf)\n   to handle some low-level protocols.  The adaptation is mostly around\n   using Twisted Conch instead of Python Threads\n3) A microservice to interface with Voltha on the SB and Netconf client on\n   the NB\n4) A set of credentials for the server and clients.  At this time these\n   credentials are local and in files.  Additional work is required to\n   secure these files\n5) A rough-in to handle the rpc requests from Netconf clients\n6) Code for initial handshaking is in place (hello)\n\nChange-Id: I1ca0505d0ac35ff06066b107019ae87ae30e38f8\n"
    },
    {
      "commit": "354487260b26edb93441a72b6e413fe335edd2fc",
      "tree": "ac76a0f4237511255ecd979acc967217413727b0",
      "parents": [
        "f089182e3179c25980cff7ab8842d41b3a16ac52"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Fri Dec 02 17:22:18 2016 -0800"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Sat Dec 03 17:01:09 2016 -0800"
      },
      "message": "Fixing podder in the following ways:\n\n1. Adhering to new Dockerfile paths\n2. Passing correct grpc port\n3. No crashing on stopping containers\n4. New compose file\n5. Mostly everything works.\n\nChange-Id: I54d2925947485ea6348389a60db24b2f952555db\n"
    },
    {
      "commit": "f089182e3179c25980cff7ab8842d41b3a16ac52",
      "tree": "f88bc655113b3bcd05fb461e47894b9b86cbbd4d",
      "parents": [
        "ff24e6402749992c8151db85945aac88670f9f3a"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Nov 28 14:47:45 2016 -0800"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Tue Nov 29 14:01:24 2016 -0800"
      },
      "message": "checking olt state connection rather than assuming we can connect\n\nChange-Id: I732dd9dd94de8df106e0d7551bccab2e7cb53515\n"
    },
    {
      "commit": "ff24e6402749992c8151db85945aac88670f9f3a",
      "tree": "cef482b57510f2672a5cc154080f565d3c42080b",
      "parents": [
        "0956e4a0a6e68e6e3aead9fb444fcdfacd530765"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Nov 28 14:30:45 2016 -0800"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Tue Nov 29 14:01:12 2016 -0800"
      },
      "message": "adding channel id config\n\nChange-Id: I215a6311e1d31c57b5fdf2cd2f10bba5a22737e2\n"
    },
    {
      "commit": "0956e4a0a6e68e6e3aead9fb444fcdfacd530765",
      "tree": "dd410cb639edf06400017422084c9d42ed8ba3db",
      "parents": [
        "d69de34888df076ca76a8a9745ff8f428f2bf431"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Thu Nov 24 11:25:05 2016 -0500"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Nov 28 09:44:17 2016 -0800"
      },
      "message": "Fixing proto imports\n\nChange-Id: Ia1b353533a62198c43fe3c3b55c678898512a78b\n"
    },
    {
      "commit": "d69de34888df076ca76a8a9745ff8f428f2bf431",
      "tree": "f373d08c688d2f0e539a0bf0dc0f00bfe512cf60",
      "parents": [
        "aa7207b1f68b46cb13f05211e0bb8fecbc16feb7"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Wed Nov 23 11:27:15 2016 -0500"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Nov 28 09:40:17 2016 -0800"
      },
      "message": "This commit adds support for:\n\n    - twisted\n    - config file\n    - banner ;)\n\nChange-Id: I234fa97b9d55a7e647dfdd82a46537c323b760a5\n"
    },
    {
      "commit": "aa7207b1f68b46cb13f05211e0bb8fecbc16feb7",
      "tree": "da8e9d63f6bbec5c4a039a1820122190ddf699c6",
      "parents": [
        "b706784b2101bd75737299d44f4d19b2cf53bb1c"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Nov 21 15:26:54 2016 -0500"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Nov 28 09:40:17 2016 -0800"
      },
      "message": "Adding an OLT state machine.\n\nInitialized the OLT connection and maintaining a keepalive\nNeed to change implementation to use twisted\n\nChange-Id: I670c2875b8c653a0849c85a2840089742dfa1188\n"
    },
    {
      "commit": "b706784b2101bd75737299d44f4d19b2cf53bb1c",
      "tree": "b3f2c56c4db302f93a0b3ff8dd0c64e36355bb25",
      "parents": [
        "b49dda9f2fe1d97e40efdf88fa523fc12c0f6abc"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 22 18:11:53 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Nov 28 00:52:54 2016 -0800"
      },
      "message": "Initial take on persistence support via k/v stores,\n\nThis is the initial mechanisms for persistence, supported\nby a k/v store. In the initial testing the k/v store\nis mcoked by a simple (in-memory) dict, but the concept\nwill carry to external, replicated, distributed k/v\nstore options, such as cassandra, redis, or even\nconsul for small-scale deployments.\n\nChange-Id: I83d2bbb327c4516fbc15d1d9979a1e89d3e7a7e7\n"
    },
    {
      "commit": "b49dda9f2fe1d97e40efdf88fa523fc12c0f6abc",
      "tree": "6434f820d1f1f3efe73602288d1022677c4b77d9",
      "parents": [
        "2c680ab19c1635826e492e7f7457445ab913493d"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Nov 11 09:42:48 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sat Nov 26 12:08:40 2016 -0800"
      },
      "message": "PON requirement docs and seq diagrams\n\nPlease review and comment.\n\nChange-Id: Iccec623e25bd723816c235cd4dd1a3b6d54e7d85\n"
    },
    {
      "commit": "2c680ab19c1635826e492e7f7457445ab913493d",
      "tree": "a5330f502cf9508589e44e003514a61d08c7e178",
      "parents": [
        "a6d9113c4fcaa38b1e6cec82a27e97f4316d67ad"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Thu Nov 17 13:28:49 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 23 10:22:26 2016 -0800"
      },
      "message": "Stub Implementation of the Microsemi Adaptor.\n\nChange-Id: Ida503793c263cedd3b1eed8a68d32b0ce99de992\n"
    },
    {
      "commit": "a6d9113c4fcaa38b1e6cec82a27e97f4316d67ad",
      "tree": "620fbf70a19cc41af33b8e971a080c9270c9e764",
      "parents": [
        "2ef4ce7cf2666ef8fe5bd0fd2546add62907aa83"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Nov 23 11:43:09 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 23 10:21:40 2016 -0800"
      },
      "message": "Correct plugin format\n\nChange-Id: I7e152cccaf9a11036f59cf99c5ffc0001ff412c2\n"
    },
    {
      "commit": "2ef4ce7cf2666ef8fe5bd0fd2546add62907aa83",
      "tree": "16d941f3c6575149763e90662829f77adc9a84f8",
      "parents": [
        "95b919d0155d676ec0abcdf7be35a0b69d7b64fb"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Nov 23 11:37:38 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 23 10:21:21 2016 -0800"
      },
      "message": "Move experimental items undo the experiments directory and some minor name cleanuos\n\nChange-Id: I748e0546a80a593ddef6b8a4ac749d592b9d26b1\n"
    },
    {
      "commit": "95b919d0155d676ec0abcdf7be35a0b69d7b64fb",
      "tree": "1d1ea1399b4a5b5b94b942e6cbc1588aaef2a469",
      "parents": [
        "dafefe16ce5d946271ca9ac5a4fd36ec2a92bee8"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Nov 18 16:20:20 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 23 10:21:21 2016 -0800"
      },
      "message": "This commit includes:\n1) Make descriptiuon fields mandatory\n2) Make some minor changes to comply to IETF\n3) Add a few test cases (more to come)\n\nChange-Id: Id871b2015ddb72c72a03c9fd5d0e08461fe67398\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": "7b1bab911a9e79da18247746f6b56168d24df049",
      "tree": "745550e2281fe0687c105a7dc3df796196894bd1",
      "parents": [
        "663f01a246b4d377f90465fc7d185dfdfb55ae0f"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Mon Nov 21 14:28:50 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 22 11:22:25 2016 -0800"
      },
      "message": "Updated: Vagrantfile and Makefile required for creating vagrant base image\n\nChange-Id: Idbc0ece27e2541ad4b08f31b6fc37f374cafff3b\n"
    },
    {
      "commit": "663f01a246b4d377f90465fc7d185dfdfb55ae0f",
      "tree": "24f633339434e7a7490857a55aacfc94a55c8abd",
      "parents": [
        "bd24f55a1f337ac7dff2f5ce0d749e0515a0f874"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Thu Nov 17 11:39:02 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 22 11:22:25 2016 -0800"
      },
      "message": "Vagrantfile and Makefile required for creating vagrant base image -\nAlso updating .gitignore file to not to incluse the created\nvagrant base box in the commit\n\nChange-Id: If7508f8c67e47b1cf282eb72cd6e32ba8442312f\n"
    },
    {
      "commit": "bd24f55a1f337ac7dff2f5ce0d749e0515a0f874",
      "tree": "3b9b94c589a09c69bda6ee4ff5cd52250b5fb8ce",
      "parents": [
        "d76880994529ddae378c56b2d2be39925e256d00"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Nov 18 11:31:15 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Nov 18 23:42:26 2016 -0800"
      },
      "message": "This commit consists of:\n1) Differentiate between yang containers and groupings\n2) Handle repeated fields\n3) Add yang list to encapsulate reference to message types\n\nChange-Id: Ideb5bf8c6ff847a580b5e27339f238d463c091f2\n"
    },
    {
      "commit": "d76880994529ddae378c56b2d2be39925e256d00",
      "tree": "56416bead1fcb52e9e8870e5cf8f4b2740f465d4",
      "parents": [
        "57828bded7bba8c13747e637ea2144e7b524a53c"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 17 00:08:57 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Nov 18 23:39:19 2016 -0800"
      },
      "message": "This commit is the initial attempt in converting a protobuf schema\ninto a yang schema. Intructions on how to execute this convertion is\nin the proto2yang.py header.  Test cases to follow.\n\nChange-Id: I7a9273138339bbaf521a2b5eab3e5f1205f79bd0\n"
    },
    {
      "commit": "57828bded7bba8c13747e637ea2144e7b524a53c",
      "tree": "4c8082c7b3cf3d7d96759ea07c96ba7c1c595a0e",
      "parents": [
        "283d76850c48b70e1821ff2366ecedbea50ed8a5"
      ],
      "author": {
        "name": "David K. Bainbridge",
        "email": "dbainbri@ciena.com",
        "time": "Tue Nov 15 17:20:41 2016 -0800"
      },
      "committer": {
        "name": "David K. Bainbridge",
        "email": "dbainbri@ciena.com",
        "time": "Tue Nov 15 17:20:41 2016 -0800"
      },
      "message": "updated to calculate default values for targetRef and targetTag as other projects\n\nChange-Id: I7cd45486b87f7110044c8ed2e5e75b9fd28a33ae\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": "94026691258da57f7e3092f4481c025b9122b4b5",
      "tree": "a1f0dfca14331aeed8492c198d14eff105026f6e",
      "parents": [
        "34e7ebb30f669f3cc98a4be892901b34e9e150f4"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 10 13:52:00 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 10 21:13:14 2016 -0800"
      },
      "message": "Update comment\n\nChange-Id: I04141c95ec0cdb143e25c4f505366ba193be23b5\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": "9d222026a2a72f13737bfc4e9f6fd6ab2066674c",
      "tree": "6cc39013a07a5b68558f5b5186a759fd899936bf",
      "parents": [
        "6e0241bdc67cdc2df0b317205c843cac004ab168"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Thu Nov 10 16:11:09 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 10 21:11:36 2016 -0800"
      },
      "message": "Slaves config file is now a jinja2 template\n\nChange-Id: I593ea08f87997dbd99934ad3b34c38c34fe1b824\n"
    },
    {
      "commit": "6e0241bdc67cdc2df0b317205c843cac004ab168",
      "tree": "c8a81bb0e7400b0ec72beca5c270120f6e78d34c",
      "parents": [
        "7941d40d11b0ba83fbcebdc041bc564b4b8f4b84"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 10 18:05:01 2016 -0800"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 10 18:05:01 2016 -0800"
      },
      "message": "Restoring the descriptor.desc file in the chameleon directory\n\nChange-Id: I16992b3d9459b7c240f88947bc78af3cda855674\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": "bf8bf28ea87c4c1b0f4a27d63465bac698db2aaa",
      "tree": "72157b68e1ddb0bfaafa333655ca184e61d672b0",
      "parents": [
        "95b68c5b0b9c7353c78de6e540e85631dac06f4e"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Nov 07 15:21:35 2016 -0500"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 10 11:02:49 2016 -0800"
      },
      "message": "Add simple rpc and some cleanups\n\nChange-Id: Ia779f9ee899fabfe5b685124f8c3b7c28a1110bb\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": "3c74d3b1fc6ad14854fd6d18f37c9b37567889e5",
      "tree": "7c68c72b8636eb18b9aded4a2b42f93d5c39830d",
      "parents": [
        "0f7eb2b14013793fe40ee0c699220d005d446633"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Nov 08 15:14:01 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 08 16:22:14 2016 -0800"
      },
      "message": "Adding better kafka error handling\n\nChange-Id: I37b90dbf19adb975cd207ed8b359ee02a499e6c2\n"
    },
    {
      "commit": "0f7eb2b14013793fe40ee0c699220d005d446633",
      "tree": "f5037ba892b177781718feee73509e32f08a6b60",
      "parents": [
        "19a7ff748a315e171719fa640996f90500069435"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Tue Nov 08 12:30:12 2016 -0800"
      },
      "committer": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Tue Nov 08 12:30:12 2016 -0800"
      },
      "message": "Fixing ansible syntax issue\n\nChange-Id: I0a97e28b6360749131263d2b0e7fed8e03f5ee48\n"
    },
    {
      "commit": "19a7ff748a315e171719fa640996f90500069435",
      "tree": "d169ea8e88eae1f32f759863a786b63de69bfcd6",
      "parents": [
        "1edb82867fe4828813a9bb7c6a3953b314105a1c"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Tue Nov 08 12:19:20 2016 -0800"
      },
      "committer": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Tue Nov 08 12:21:36 2016 -0800"
      },
      "message": "Revert \"Emergency fix to ansible\" : reverting the changes.\n\nThis reverts commit fa523c636bb0b8446a9a827713731ae8c6de8090.\n\nChange-Id: I1889d82ff36131b12514f36e6e1fd0d3806e0878\n"
    },
    {
      "commit": "1edb82867fe4828813a9bb7c6a3953b314105a1c",
      "tree": "582255fc5cd72aa1cea5c713be95e1ad17c3054f",
      "parents": [
        "fa523c636bb0b8446a9a827713731ae8c6de8090"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 08 10:57:19 2016 -0800"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Nov 08 11:15:18 2016 -0800"
      },
      "message": "Fix to docker import issues and swagger error\n\nThis is actually two fixes in one change:\n1. Fixing the import issues in the docker containers, also cleaning\n   it up.\n2. Avoiding the creation of multiple swagger.json files by specifying\n   which of the proto files represent the top-level service.\n\nChange-Id: I9fec5cf48df127725673ba53f0e91d2ed2e275ad\n"
    },
    {
      "commit": "fa523c636bb0b8446a9a827713731ae8c6de8090",
      "tree": "523f15968d6b78c746b64fe7d4417cec225d389d",
      "parents": [
        "c61999aa8148b9bf3e08f0e8394f26741cd113ce"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 08 00:35:59 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 08 00:35:59 2016 -0800"
      },
      "message": "Emergency fix to ansible\n\nLook like the with_item \u003cvariable-name\u003e feature is broken in the\nlatest 2.2.0 ansible code. It works fine with previous release\n2.1.0. Inlining the lists instead of referring to the defaults\nworks fine. So inlining the list content is an emergency fix.\n\nChange-Id: Ibb445abe73e6bdc9378bcad0af8c8816e1df6e6e\n"
    },
    {
      "commit": "c61999aa8148b9bf3e08f0e8394f26741cd113ce",
      "tree": "38ea0e24d31c36917eacea643a4b9d57864edc86",
      "parents": [
        "7eeb2b35568aa53c175013d1bec1f84abd928c71"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Thu Oct 27 16:44:27 2016 -0700"
      },
      "committer": {
        "name": "Ali Al-Shabibi",
        "email": "ali@onlab.us",
        "time": "Mon Nov 07 15:09:42 2016 -0800"
      },
      "message": "adding ability to start container and monitor their status\n\nChange-Id: I6cbfcf1046c3d9a452d4177564a6d6c1f3773b2d\n"
    },
    {
      "commit": "7eeb2b35568aa53c175013d1bec1f84abd928c71",
      "tree": "16413cdeb84c641a485484efdc012f288301f9c9",
      "parents": [
        "91350ebd11fc030359a79332bfe18e75da139d54"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Sun Nov 06 14:04:55 2016 -0800"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Nov 07 00:49:10 2016 -0800"
      },
      "message": "Refactored protobuf framework, added loader\n\nIncluded changes:\n\n* Initial adapter interface spec\n* Adapter loader to auto-load adapters\n* Initial adapter NBI\n* Better import support in chameleon, allowing more flexible\n  protobuf structure (by organizing artifacts and service\n  into separate proto files.\n* Refactored voltha.proto to split things into logical proto\n  modules.\n* Some additional cleanup\n\nChange-Id: I75f9883c6992148ea8df430bcdaebf85115fea4a\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": "d70cd4de56b7d8b57493a2d1077749d7c58fb3fe",
      "tree": "af229c5f94e131d7346b739f1cd8bfe845fe5f3a",
      "parents": [
        "0df86c177f6e7f81abcc463ad560e6ea7a93f55e"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 03 23:23:36 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Nov 04 22:05:27 2016 -0700"
      },
      "message": "Moved event bus to common lib\n\nChange-Id: I530498db2d4fd3ba644dd4a92e0b6ce74bce3a27\n"
    },
    {
      "commit": "0df86c177f6e7f81abcc463ad560e6ea7a93f55e",
      "tree": "03b4864f8aa8c115e5e5aa689dffca8fd5a331e1",
      "parents": [
        "f8abbc992604a3ac08e439ad8449d85178054e75"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 03 23:03:35 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Nov 04 22:05:27 2016 -0700"
      },
      "message": "Internal universal pub/sub event bus\n\nChange-Id: I0f295727add5675bef292f5fd764ecc766239107\n"
    },
    {
      "commit": "f8abbc992604a3ac08e439ad8449d85178054e75",
      "tree": "92f628c0067e8aceae0d80d4818214145b16227b",
      "parents": [
        "4c43525b70b09b2ef7267a984c8fe9dd5ba3aa2f"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Nov 04 19:56:45 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Nov 04 19:56:45 2016 -0400"
      },
      "message": "Adding initial test cases, include enumeration conversion, address review comments\n\nChange-Id: I59a19f80289464c934ad16d2d2ce1c78a6ba6f2c\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": "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": "3d565e206c2dc0ac28f3921e1e44e6a865d4fc8c",
      "tree": "acce1600e1b736852baae5a23e9d012a54119470",
      "parents": [
        "06854cba6caaaf0f46d8641db7ec42c4ebefe2a7"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 03 10:33:09 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Nov 03 10:33:09 2016 -0700"
      },
      "message": "Import fix\n\nChange-Id: Ic157c4da3343064655b3925a965cdfab3ada809a\n"
    },
    {
      "commit": "06854cba6caaaf0f46d8641db7ec42c4ebefe2a7",
      "tree": "aff9c6926d5ac92b25fd67b02508dff608fe1f09",
      "parents": [
        "0f387e6e73f17af75eb8b8a91fd8ea4d92f26119"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 02 01:29:20 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 02 01:34:58 2016 -0700"
      },
      "message": "Refined OMCI parsing and serialization\n\nChange-Id: I52f5a1fff997c41de51022fc6f8d4293b191994d\n"
    },
    {
      "commit": "0f387e6e73f17af75eb8b8a91fd8ea4d92f26119",
      "tree": "b320eb304806071c0c3258fbaf1ba235df0476cb",
      "parents": [
        "1c3eba81d41fd5ba1b847f74326518b823f7fc3c"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Nov 01 01:57:38 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Wed Nov 02 01:33:34 2016 -0700"
      },
      "message": "Microsemi and OMCI very initial code\n\nChange-Id: Ieb648f43eab3b2dff50093c79ed27b9e40ae130e\n"
    },
    {
      "commit": "1c3eba81d41fd5ba1b847f74326518b823f7fc3c",
      "tree": "6aac793d24bd500ed10378726d073f1d7a84d6c7",
      "parents": [
        "cd22adc23cff59dd5f6a96ec12a5b336036937ec"
      ],
      "author": {
        "name": "Rouzbahan Rashidi-Tabrizi",
        "email": "rrashidi@ciena.com",
        "time": "Thu Oct 27 21:47:18 2016 -0400"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Oct 28 08:41:56 2016 -0700"
      },
      "message": "CORD-479 : Pulling literals out into voltha yaml file\n\nChange-Id: I6f948bac24e6a8f13253592f21de12196888e2e5\n"
    },
    {
      "commit": "cd22adc23cff59dd5f6a96ec12a5b336036937ec",
      "tree": "f8884eee569867f43a28b450a6c2242f458f1221",
      "parents": [
        "862883a240b41c87dc49d956246edd2d37c604e1"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Oct 25 00:13:06 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Fri Oct 28 08:34:51 2016 -0700"
      },
      "message": "Packet in/out streaming from ofagent to core\nGetting ready for packet streaming\n\nChange-Id: I8d70d4d6ffbb23c0d7ab20582e9afac49f9f6461\n\nSupport flow_delete_strict\n\nChange-Id: I5dab5f74a7daddcddfeb8691a3940347cb2fc11b\n\nPacket out halfway plumbed\n\nChange-Id: I799d3f59d42ac9de0563b5e6b9a0064fd895a6f6\n\nrefactored async_twisted\n\nChange-Id: I68f8d12ce6fdbb70cee398f581669529b567d94d\n\nPacket in pipeline and ofagent refactoring\n\nChange-Id: I31ecbf7d52fdd18c3884b8d1870f673488f808df\n"
    },
    {
      "commit": "862883a240b41c87dc49d956246edd2d37c604e1",
      "tree": "aa9de0b8f552a5af4988f5b1092ae509b9a7e6dc",
      "parents": [
        "4e0dc4e737c32566ec530de10034a8b935bf1f55",
        "c67ee3a5374a4adf8ea867d83f581134a3c5b8fb"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Thu Oct 27 13:00:25 2016 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@localhost",
        "time": "Thu Oct 27 13:00:25 2016 -0700"
      },
      "message": "Merge \"WIP: Initial implementation of Podder\""
    },
    {
      "commit": "c67ee3a5374a4adf8ea867d83f581134a3c5b8fb",
      "tree": "261be20ca1c4c11a9c307842f2ff2d2055fd2eb3",
      "parents": [
        "68b9be3860d9ee41bb9a971a7f2215b5ab7d37ea"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Tue Oct 25 23:24:03 2016 -0700"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Tue Oct 25 23:24:03 2016 -0700"
      },
      "message": "WIP: Initial implementation of Podder\n\nPodder is a service which monitors consul registered services\nin order to spin up their dependencies. Dependencies are\nindicated as SERVICE_x_TAGS as a csv. Podder picks those\ndependencies up and spins up specified containers in their own\nnetwork. For example, if a voltha_1 is instantiated\npodder will spin up chameleon_1 and ofagent_1.\n\nChange-Id: I0c1add8530c78fc761e39fe58cf24f14e96c0ba4\n"
    },
    {
      "commit": "4e0dc4e737c32566ec530de10034a8b935bf1f55",
      "tree": "05f68f0a79a26d69554257adedfe8e4e7f9e6629",
      "parents": [
        "6f319a3c3ae8772c80205ec1c5878baeb95ff29a",
        "f309e2c343077daa65aa9943b92ef350a652865b"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Tue Oct 25 23:18:37 2016 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@localhost",
        "time": "Tue Oct 25 23:18:37 2016 -0700"
      },
      "message": "Merge \"Update controller param to the host IP\""
    },
    {
      "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": "f309e2c343077daa65aa9943b92ef350a652865b",
      "tree": "403b6ed6d43e11fad69df6bdf8f748d44ecd2974",
      "parents": [
        "68b9be3860d9ee41bb9a971a7f2215b5ab7d37ea"
      ],
      "author": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 25 14:36:21 2016 -0400"
      },
      "committer": {
        "name": "Khen Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Oct 25 14:36:21 2016 -0400"
      },
      "message": "Update controller param to the host IP\n\nChange-Id: If550bcf9e85fa92f0847196d1e193b62b5cb34ab\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": "9125b1a90ceff0e60c944a6430e8054cf36a0f76",
      "tree": "9be01e5e9cc146403a86b89c68307c2806ff8549",
      "parents": [
        "40f039c39f0fff90a68f7cccf3d772c4e8efcf5d"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 22:54:33 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 23:00:03 2016 -0700"
      },
      "message": "Fixed two bugs in OpenFlow land\n\nChange-Id: I74f37221d93c71398a1985143f03706297bd1661\n"
    },
    {
      "commit": "40f039c39f0fff90a68f7cccf3d772c4e8efcf5d",
      "tree": "15cbb1f92df75b5cee19a672163c748de61942bc",
      "parents": [
        "428c94292344993a1215c6d9fd7e5a63f9f44da9",
        "8a7743872b15bf3d95d4aaaf1b77bfad40cda35d"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 20:57:23 2016 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@localhost",
        "time": "Mon Oct 24 20:57:23 2016 -0700"
      },
      "message": "Merge \"All olt-oftest flow and group commands propagate\""
    },
    {
      "commit": "8a7743872b15bf3d95d4aaaf1b77bfad40cda35d",
      "tree": "43258f000eb932fc7121f523aa0756ecfb77dd49",
      "parents": [
        "023ea7cbbc9482643579b92ab02b3ed104e1f575"
      ],
      "author": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 18:25:54 2016 -0700"
      },
      "committer": {
        "name": "Zsolt Haraszti",
        "email": "zharaszt@ciena.com",
        "time": "Mon Oct 24 20:53:40 2016 -0700"
      },
      "message": "All olt-oftest flow and group commands propagate\n\nChange-Id: Iddde6ddddd5a0ca5100ee95d55fedd247ab7f263\n"
    },
    {
      "commit": "428c94292344993a1215c6d9fd7e5a63f9f44da9",
      "tree": "6648ee03b218360f45cf14b3307418ca0ba6a97d",
      "parents": [
        "023ea7cbbc9482643579b92ab02b3ed104e1f575"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Oct 24 17:30:55 2016 -0700"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Mon Oct 24 17:30:55 2016 -0700"
      },
      "message": "adding integration tests to jenkinsfile\n\nChange-Id: Ic425456b03f659d118194731023369b099054124\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": "4ba198966634f48c11a7dfb5590b404b1b2a1f34",
      "tree": "31507ac542ba5feeab51b134e11f921e7de9e7b1",
      "parents": [
        "f6c93b98c993c831edc68757184dcc9476149da9"
      ],
      "author": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Sat Oct 22 18:11:22 2016 +0200"
      },
      "committer": {
        "name": "alshabib",
        "email": "alshabibi.ali@gmail.com",
        "time": "Sat Oct 22 18:11:22 2016 +0200"
      },
      "message": "substituting mail notification for slack notification\n\nChange-Id: Ic777b7a18691b10bab4475f5a78f230b5da90bde\n"
    }
  ],
  "next": "f6c93b98c993c831edc68757184dcc9476149da9"
}
