)]}'
{
  "log": [
    {
      "commit": "a8cf8334a922a7a7a9339bf5af165a6f7184e526",
      "tree": "888b99d670d1e8aeefeca35fabb89f83d5f4b0f7",
      "parents": [
        "3d3b8c2f6431cf86d6da064db19c295a3e3b6fc1"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri May 24 11:10:28 2019 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri May 24 11:10:28 2019 -0400"
      },
      "message": "VOL-1677 : Fixed callback issue\n\nChange-Id: I72de46f1ed40fd97aafefdba2b3de34303f9946c\n"
    },
    {
      "commit": "802aca48623560437ec03b52c7b7c73f37ff965a",
      "tree": "5504fdf503f99949e64bcfe1431a231c5e76828f",
      "parents": [
        "5a4a21234a6e9d3b66c9738bc7f5e18772a55859"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue May 21 12:19:28 2019 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue May 21 15:01:49 2019 -0400"
      },
      "message": "VOL-1616 / VOL-1611 : Fix device state issue and memory discrepencies\n\n- Applied mutex on node object to resolve in-memory data conflicts\n- Introduced a refresh period for in-memory data\n\nAmendments:\n\n- Fixed node.go file format\n- Bumped VERSION to 2.1.0-dev\n- Use a RLock for GetLastUpdate\n\nChange-Id: I57e88fe3ec5cceed0d4fcdb240ae9191b49ebe33\n"
    },
    {
      "commit": "d3e0f006380630b2002460f0281248c34b547964",
      "tree": "756aeba3b4b90515f53875c5a3a010624833e8f4",
      "parents": [
        "7512fc898c89494edeb4d3b7ee24ff9588ca4b87"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed May 08 12:36:25 2019 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed May 08 12:36:25 2019 -0400"
      },
      "message": "VOL-1584: Removed extra SetProxy statement\n\n- SetProxy was not always matching the device type\n\nChange-Id: I795c2d11b3644f85f8af737c47b2505eaf303716\n"
    },
    {
      "commit": "7512fc898c89494edeb4d3b7ee24ff9588ca4b87",
      "tree": "4822536d5f50c26834f669af39106dbe258d4a1a",
      "parents": [
        "259a6f7ad2e0953a4a7c3de671a10cf4adaeedce"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue May 07 12:25:46 2019 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue May 07 14:20:11 2019 -0400"
      },
      "message": "VOL-1584: Fix for multi-core cli infinite loop\n\n- Reduced number of calls to kv\n- Re-introduced cache logic for in-memory data access\n- Misc log updates\n\nAmendments:\n\n- Ensure that we clone the returned cache data\n- Give priority to cache but use alternate get methods otherwise\n\nChange-Id: I56ce67f22d9945b7a194f4c6aab0c7fd75dd2f2e\n"
    },
    {
      "commit": "0ab4cb2bfea71765610ef8f0051c8d7b231ad08f",
      "tree": "673cb56dbeb13f026c43fe636a98db3ae1cc9059",
      "parents": [
        "2c6a099da75a0cf428ef57e5e67057e09a4e2625"
      ],
      "author": {
        "name": "Kent Hagerman",
        "email": "khagerma@ciena.com",
        "time": "Wed Apr 24 13:13:35 2019 -0400"
      },
      "committer": {
        "name": "David K. Bainbridge",
        "email": "dbainbri@ciena.com",
        "time": "Tue Apr 30 11:47:21 2019 -0700"
      },
      "message": "VOL-1577 - General cleanup (gofmt, go vet, go test, dep check)\n\nChange-Id: I536b2746b8bd266f3e75aeccc65bfe7468f1b44a\n"
    },
    {
      "commit": "2c6a099da75a0cf428ef57e5e67057e09a4e2625",
      "tree": "b59b8ca2d9afb0504fc4722a493e1c0d999192ff",
      "parents": [
        "334479db5b9b90c372737bfa398c4168019fa922"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Mon Apr 29 13:46:56 2019 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Mon Apr 29 16:49:03 2019 -0400"
      },
      "message": "[VOL-1588] Improve Flow Add performance\n\nThis update consists of the following:\n1) Update the performance when adding a flow to a logical device,\ndecomposing the flow into parent and child device and sending the\nflow to the adapters.\n2) Format a number of files as per GO fmt.\n3) Ensure the device graph cache gets updated when a new port is\nadded to the graph that belongs to an existing device in cache.\n\nThe flow update/deletion performance will be addressed in a separate\ncommit.\n\nChange-Id: I2eb663cc73eef9fc6172203ed88a35726f5fe008\n"
    },
    {
      "commit": "40fd3b2ebed11a85581b2f34f74c74e54cfc306a",
      "tree": "e70b73b2561d074b549945d8e705461f40ae60ec",
      "parents": [
        "142516e3824069a87b34b9255df09f4569213953"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Apr 23 21:50:47 2019 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Apr 23 21:50:47 2019 -0400"
      },
      "message": "VOL-1497 : Further improved data synchronization between cores\n\n- Introduced locking when modifying branches\n- Introduced locking when modifying rev children\n- Rewrote persistence loading logic to avoid unecessary changes\n- Access controlled CreateProxy to ensure a proxy is not created\n  against an incomplete device entry\n- Removed locking logic from etcd client\n- Replaced revision merging logic with persistence loading\n\nVOL-1544 : Cleanup revisions to improve overall performance\n\n- Ensure that old revisions are discarded\n- Ensure that children do not contain discarded revisions\n- Disabled cache logic for now\n\nChange-Id: I1b952c82aba379fce64a47a71b5309a6f28fb5ff\n"
    },
    {
      "commit": "8f47419a86d05c9c2810a222481070ad665d3e15",
      "tree": "10ffd905444da10594f6a6783ad97cabb96605d1",
      "parents": [
        "9fba865a4f13c5c393b2f645a291dcaa6cb2cc13"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Wed Apr 03 17:20:44 2019 -0400"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Thu Apr 04 13:55:56 2019 +0000"
      },
      "message": "[VOL-1547] Add port to logical device when device is active\n\nThis commit consists of the following changes:\n1)  Fix the issue where flows were received when the logical\ndevice flow graph was not ready.\n2) Update the default kafka config for improved performance\n3) Add a lock to the device ownership logic to ensure the\nlock map does not get corrupted.\n\nChange-Id: I840d572e06ed5acf0f3bc1ce423a0ada8f335543\n"
    },
    {
      "commit": "daa6bb293ba6cd2eee66d4ad5e42316a4d5d7e8d",
      "tree": "a04aa6754c512235ef96e218653a0759754fa241",
      "parents": [
        "f7fc1788f86c11b2cd678853a965db52795a1344"
      ],
      "author": {
        "name": "William Kurkian",
        "email": "wkurkian@cisco.com",
        "time": "Thu Mar 07 12:26:28 2019 -0500"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Apr 01 14:36:17 2019 +0000"
      },
      "message": "VOL-1460 Updated core to use voltha-protos instead of local protos\nMoved protos to python directory in order to maintain functionaly of containers built there.\nAdded capability to do local builds of protos\nAdded instructions on running dep ensure for getting protos.\nUpdated github.com/golang/protobuf version to v1.3.1\n\nChange-Id: Ia6ef55f07f0d5dcb5b750d7c37b21b71db85bfc4\n"
    },
    {
      "commit": "f7fc1788f86c11b2cd678853a965db52795a1344",
      "tree": "05b4306815fd2a601fd05c3e975e9e7bb72c32d5",
      "parents": [
        "1ce37ad5ed1e75e11a2546fcb325529f435dd211"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Mar 28 22:33:41 2019 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Mar 28 22:41:01 2019 -0400"
      },
      "message": "VOL-1543 : Fix to properly delete a device from storage\n\nChange-Id: I52d37d947ee6aaf4108fb8252951a123a2829d0c\n"
    },
    {
      "commit": "1ce37ad5ed1e75e11a2546fcb325529f435dd211",
      "tree": "a5a80adab81265b39f928e67ac4639f3e9c42a5b",
      "parents": [
        "199fd8694c5c116394df6dca8980467dbde66471"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Sun Mar 24 22:07:24 2019 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Sun Mar 24 22:07:24 2019 -0400"
      },
      "message": "[VOL-1512] Set device ownership\n\nThis commit consists of the following:\n1) Set device ownership per Core in a Core-pair such that only 1\nCore actively process a device (i.e. handles all the requests for\nthat device) while the other Core in the pair passively watch for\nupdates on that device and will take over in case the owner Core\nfailed to process the transaction.\n2) Cleanup the lock mechanisms to ensure we use a read lock when\nneeded instead of just a lock.\n3) Update logical port additions such that ports are added only when\nthe device is enabled.\n4) Update the port Ids for the logical ports.\n5) Update some sarama client configs for performance - this is an\nongoing tune up.\n6) Update the adapter request handler in the Core to send back an\nACK immediately to the adapter request instead of processing the\nrequest fully and then sending an ACK.  This reduces the latency\nover kafka and therefore reduces the likelihood of timeouts.\n\nChange-Id: I9149bf3ba6fbad38e3a29c76ea8dba2f9f731d29\n"
    },
    {
      "commit": "daefa37cb4ad7f8b275d5a8cff05e1d50ebdbfb2",
      "tree": "3614e5432c91dedc9dff0bce387ed7d420bfa1a5",
      "parents": [
        "79c9a046641d23133d1cfc248ca6ac62c812970e"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Fri Mar 15 14:04:25 2019 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Fri Mar 15 14:04:25 2019 -0400"
      },
      "message": "[VOL-1519]  Bug fix when deleting a device\n\nChange-Id: I4e1f42d0c3f43e9778fd007b149f3711fb9f69f0\n"
    },
    {
      "commit": "fc1314d6a147ba10a99fc5d20fb7c6cd268820c5",
      "tree": "f689a292ab08dcde61f3e274abb9c959bb4b02a8",
      "parents": [
        "fffcc8a86b9a2bf8944a872d76e924596b813e73"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Mar 14 09:34:21 2019 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Mar 14 09:34:21 2019 -0400"
      },
      "message": "[VOL-1514]  Add port notification to the logical device\n\nThis update sends port status notifications to the OFAgent.  This\ncommit also refactored the port creation logic to ensure we can\nadd a port to a logical device anytime.\n\nChange-Id: Ied78e93d0feef4621b588cfd4e10bbead79b0a5b\n"
    },
    {
      "commit": "c53a275af72ecd9733d2d1527a3d5d9e7d2ae073",
      "tree": "064e52ad804719fa830088f12cd8900d8edb8d74",
      "parents": [
        "a26e072eaf533d297d5c306de0067f36b36a1b1d"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri Mar 08 17:50:10 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri Mar 08 17:50:10 2019 -0500"
      },
      "message": "VOL-1509 : Partial fix for merging issue\n\n- Changed channel map in etcd to a sync.Map\n- Changed graph boundaryPorts to sync.Map\n- Added logic to check if proxy access is currently reserved\n- Changed watch logic to exit when proxy access in progress\n- Fixed UpdateAllChildren method\n- Commented out the Drop operation again in node.go\n\nChange-Id: I8a61798e907be0ff6b0785dcc70721708308611d\n"
    },
    {
      "commit": "bdcb8e04320c7e9f57714b5e8dddeeb99e92a6aa",
      "tree": "05fb572aa9f322e01861e8a2717763aedb7bbfd0",
      "parents": [
        "cee54fd6bc77fe5079ecb460a98a68b1a22df583"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Wed Mar 06 16:28:56 2019 -0500"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Wed Mar 06 16:28:56 2019 -0500"
      },
      "message": "[VOL-1505]  This update enables the core to add a key when\npublishing an event onto kafka.   The corresponding update is\ndone in the adapter GO components.   Similar changes remain to\nbe done in pyvoltha.\n\nChange-Id: I0bb1e3cb8c2fa9e0214f96d863819755d34a0bb9\n"
    },
    {
      "commit": "260a563f8dc9823c55b6e96b2a9d410073029534",
      "tree": "08f3f1733f8f48526835e9b36394408f5d06ca38",
      "parents": [
        "0105a1f0206deaba5331eeef7bfa8c6308111017"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Feb 26 16:12:49 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Feb 27 11:28:19 2019 -0500"
      },
      "message": "VOL-1497 : Add more control to kv/memory access\n\n- Added kv locking mechanism (etcd only)\n- (watch) control path access whenever possible\n- (watch) use a transaction for updates and merge with memory\n- cleaned up vendoring\n- misc changes to fix exceptions found along the way\n\nAmendments:\n\n- Copyright header got removed in auto-generated file\n- Changed default locking to false for KV list operation\n- Updated backend api to allow the passing of locking parameter\n\nChange-Id: Ie1a55d3ca8b9d92ae71a85ce42bb22fcf1419e2c\n"
    },
    {
      "commit": "b0c79896db103bbc144ab8f0ffa6ce9441f3d7df",
      "tree": "b89747d80b42238928a53fdca8f3a650460b90cd",
      "parents": [
        "6d05513eed2df98b5cbe5224e3bcc98969542a36"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Feb 13 11:29:59 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Feb 13 11:29:59 2019 -0500"
      },
      "message": "VOL-1468 : Ensure hash is kept and latest is set\n\nChange-Id: I6ea53b7da41963c9ecce4df2c6d9a320c79930fc\n"
    },
    {
      "commit": "0a97e9b7c7d99d30317e358668cd1e5f5709d485",
      "tree": "9e8e984642349a640f352a5c90609d0792f4f08f",
      "parents": [
        "1e28f3ea933fc5e49a813be6242fc5c5681f6a60"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Mon Feb 11 22:02:17 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Mon Feb 11 22:02:17 2019 -0500"
      },
      "message": "VOL-1468 : Fix to prevent kv watch updates to trigger callbacks\n\nChange-Id: Iff8cdd686d61d9c5015b61624626f8e426cc12fe\n"
    },
    {
      "commit": "1e28f3ea933fc5e49a813be6242fc5c5681f6a60",
      "tree": "439a2d8e2bb84c81ba2e1907f11251a7ce9e515a",
      "parents": [
        "13182842bc80ff07b46d0ea269ea090ee9699769"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri Feb 08 15:45:20 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri Feb 08 15:45:20 2019 -0500"
      },
      "message": "VOL-1465 : Integrate rw sync fixes into ro core\n\n- Added new config-map for affinity router\n- Removed some really verbose model logs\n- Fail core when kv client cannot be established\n\nChange-Id: I7f10c7ce3121abaf88fa622aecb3affd40813d67\n"
    },
    {
      "commit": "11b88e7b4962fe906a383f5393a1d7f18d279a77",
      "tree": "43f5108fb078da5e36437201dae19fd881323a69",
      "parents": [
        "aa467940478031f3f2da25298dc4ae6b44f9762c"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Feb 07 12:28:29 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Feb 07 12:28:29 2019 -0500"
      },
      "message": "VOL-1459 : Fix failure to load device from persistence\n\n- fixed watch logic which was not really updating memory\n- force get depth to 0 to work around corrupted data structures\n\nChange-Id: I595981e2ee3d816d17702e7f39c099193590fa6f\n"
    },
    {
      "commit": "aa467940478031f3f2da25298dc4ae6b44f9762c",
      "tree": "f91e75bedace9edd4e9f8076844e73da1caa8c96",
      "parents": [
        "d62ac4e3aec5a43c5ebd4f2641bf26358230dea5"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Feb 06 14:09:44 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Feb 06 14:09:44 2019 -0500"
      },
      "message": "VOL-1459 : Ensure data model synchronization from kv\n\n- Introduced a new List function to force a load from persistence\n- Properly create a proxy for non-keyed nodes (e.g. /adapters)\n- Optimized load from persistence operation to avoid existing entries\n- Fixed/Enhanced proxy unit test\n\nChange-Id: Ib368d32c517e74410b541bb8927429d066a9cfd0\n"
    },
    {
      "commit": "d62ac4e3aec5a43c5ebd4f2641bf26358230dea5",
      "tree": "a6fa95bea69e1f320f7f228da0308929113fcc79",
      "parents": [
        "433f54ac005a0157ac36b7832de64eaf2f875eb9"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Feb 05 14:08:38 2019 -0500"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Tue Feb 05 19:22:31 2019 +0000"
      },
      "message": "VOL-1446 : Fix to prevent proxy callbacks from being wrongly used\n\n- The fix consists in only assigning a proxy to a child node if\n  the proxy of the parent points to the root folder \"/\"\n\nChange-Id: I81fa9e0e142fb2a1fb885684026e2e2037144076\n"
    },
    {
      "commit": "1039ec41bb2ef51f7ca39e321c8eb15fe81bad7c",
      "tree": "4674823bcb51f09d7e6e4c198c85e2a0979241fc",
      "parents": [
        "21d511581d954bad8193499b9c12c929d6c42cf5"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Mon Feb 04 10:43:16 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Mon Feb 04 10:43:16 2019 -0500"
      },
      "message": "VOL-1446 : Cleanup of db/model unit tests\n\n- Fixed issues with model components while running tests\n- Removed unecessary tests\n\nChange-Id: Ica2007b66f681d03a77144cf2e778aa5a586786a\n"
    },
    {
      "commit": "21d511581d954bad8193499b9c12c929d6c42cf5",
      "tree": "7de97a70624650ec25567b4e730adfad4a1be376",
      "parents": [
        "d6e07e75efb1d9d65436ebb6ebbb80a1845208d3"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Fri Feb 01 13:48:37 2019 -0500"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Feb 01 19:04:03 2019 +0000"
      },
      "message": "[VOL-1442]  This commit handles adapter registration end to end.\nIt introduces an adapter manager to handle all adapter admin\nrequests.  Some protos have been cleaned as well.\n\nChange-Id: If75d4f7665c03e841d57f5621c30301940d04d93\n"
    },
    {
      "commit": "df5479f5603f8996d318b6b16adc37cefa452e33",
      "tree": "d2f27cbeaf37e9e253b762590d766fd0ffde4277",
      "parents": [
        "b608032429f103c6ca8c323e7e782cf0fb21a9da"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Jan 29 22:13:00 2019 -0500"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Jan 30 14:43:51 2019 +0000"
      },
      "message": "VOL-1437 : Fix display of devices in CLI\n\nRenamed state field in image download proto which caused\njson marshalling to fail.\n\nother updates\n- unmarshal data properly when pulling data from kv in watch\n- do not update unecessarily if watch data matches data in memory\n- added ofagent target to python Makefile\n- fixed grpc path to update log level which interfered with getdevice\n\nChange-Id: I4fceeb539c3325b6754efe2b68251d83b7367211\n"
    },
    {
      "commit": "3cb0122930cc7273cbddd4a275987395500bdb18",
      "tree": "3d6bcdc2f0230c08c31efbd3a3608ee3d0e0853c",
      "parents": [
        "38afd0dc5cbf6dbbb05800699c8aae8869c748d3"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Jan 16 17:15:56 2019 -0500"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Mon Jan 21 18:46:12 2019 +0000"
      },
      "message": "VOL-1387 : Fixed issue introduced with watch mechanism submission\n\n- Added flag to determine when a revision is watched\n- Added flag to determine when a revision is stored\n- Refactored confusing method names for Set/GetChildren\n- Fixed issue with deletion of devices due to previous submission\n\nChange-Id: I68c46951f9d40d47e4e74854bba449c9fec4a427\n"
    },
    {
      "commit": "e0a4c79f591cf51f55276b9895016012b488bf58",
      "tree": "a611b076a5028437cd2c5a333f8c15fd0de85f96",
      "parents": [
        "d046be899b697e6c82de5673b56b79935b449345"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Jan 16 11:26:29 2019 -0500"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Wed Jan 16 16:48:45 2019 +0000"
      },
      "message": "VOL-1387 : Added watch mechanism\n\n- Fixed a few failure cases\n- Adjusted a few logs\n\nChange-Id: Ied1ecb3d8996a338eee00e9643685482700e860b\n"
    },
    {
      "commit": "933b09bd64667dc05650b9d999177a64fa088a84",
      "tree": "72715255ebfa488c6dd98a3d11f7002069619328",
      "parents": [
        "5f89fb69958e2b137ec3857317b9936b93702876"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Jan 09 11:12:09 2019 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Jan 09 11:12:09 2019 -0500"
      },
      "message": "VOL-1372 : Fixed core crash due to how revisions are updated\n\n- UpdateChildren merges new and existing entries\n- proxy access control singleton now uses sync.Map since the\n  entry was intermittently losing its content\n- Switch to AddWithID in the device_agent to ensure thread safety\n\nChange-Id: Ifcb2374f48b612a487a00f4a952aeec21d1c4af1\n"
    },
    {
      "commit": "1ab4327bd1f6f0b069e0af70e402c57a72425c6f",
      "tree": "64a77d2c9a4c94c55cd015a449bdaeba5094fc6d",
      "parents": [
        "ab8e25365ef0d44ef15f5c50efb16c7c1261ab05"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Sat Dec 08 21:42:13 2018 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Sat Dec 08 21:42:13 2018 -0500"
      },
      "message": "VOL-1173 : Removed hash based storage; replaced with per device protobuf\n\n- Ensured proxies issue callbacks instead of forcing with goroutines\n- Fixed mutex issue with proxy component\n\nChange-Id: Idabd3257c6d264c0f607ee228e406810304dab43\n"
    },
    {
      "commit": "43c8212e3aba66bff565601bb6143a599dd1c421",
      "tree": "3f626df31d81b366e308fa7ab1bcb69e8184cef4",
      "parents": [
        "dc5022d9dd23f415e7b497ad0082844cc2be1197"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 22 18:38:28 2018 -0500"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Nov 22 18:38:28 2018 -0500"
      },
      "message": "This update addresses the following:\n1.  Decouple the kafka messaging proxy from the kafka client.  This\nwill allow us to try out different kafka clients as well as test\nthe client separately.\n2. Create unique device topics for the core, olt adapter and onu\nadapters.  This will ensure only cores and adapters handling these\ndevices will listens to the device messages.\n3. Update the core with the latest device model APIs and changes.\nWhile most of the model issues have been fixed, there is still an\nissue with updating a child branch.   This will be dealt in a separate\nupdate.\n\nChange-Id: I622ef5c636d7466bb3adefaa4ac4c85d7c450bea\n"
    },
    {
      "commit": "dc5022d9dd23f415e7b497ad0082844cc2be1197",
      "tree": "b2f9320b21b6db474e45edf01256eb1068e2ce06",
      "parents": [
        "c635cd3265002d98f2a53eecaf77d4a41229abf2"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Mon Nov 19 15:21:44 2018 -0500"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Mon Nov 19 15:21:44 2018 -0500"
      },
      "message": "VOL-1334 : Fixed concurrency issues\n\n- Semaphores were added at the different layers of the model\n- Made the proxy interfaces more robust\n- Eliminated problems while retrieving latest data in concurrent mode\n\nChange-Id: I7854105d7effa10e5cb704f5d9917569ab184f84\n"
    },
    {
      "commit": "a188d94b8a07e8d458317c1865e254abf4d3397a",
      "tree": "00634d1856438a75c3c2a227aa2ebbef7254ecd3",
      "parents": [
        "126101e6179674e288c2b09b55bfa22ea348c4fa"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Oct 16 16:43:04 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Oct 17 10:36:49 2018 -0400"
      },
      "message": "VOL-1243: Added logic for thread safety\n\n- Thread safety was added at the proxy level\n- Refactored the test init in a base_test structure\n- Fixed issue with writing to kv\n- Added profiling for locking period\n\nAmendments:\n\n- Comment out a cleanup statement causing KV corruption (as per VOL-1293)\n- Added missing license\n\nChange-Id: Id6658270dbb8b738abeef9e9e1d349dce36501bc\n"
    },
    {
      "commit": "126101e6179674e288c2b09b55bfa22ea348c4fa",
      "tree": "caa874e8243d2a59d178f94f2bb619d1dee4c3f3",
      "parents": [
        "4d4802d7e431bd9720c1c2ababbb07dacc63d6c0"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Oct 11 16:18:48 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Oct 11 16:18:48 2018 -0400"
      },
      "message": "VOL-1283: Fixed callback execution consistency for all proxy levels\n\n- Callbacks are executed at any proxy levels\n- Uncovered some issues with the base children fields structure\n- cleaned up the root/node structures\n- Ensure that a get command returns a clone.\n\nChange-Id: Ic2cd5420c29332bd9b5d6f303a7fd9d0d0ccaf06\n"
    },
    {
      "commit": "8c48b5c9e3bbdad9e13fa34a3475b214505e3a0e",
      "tree": "4331c1a1367c1397c8a5151221850f68ce54aad4",
      "parents": [
        "06c4a74a28b448d56a3efc82a13b9b1d11482134"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Oct 02 09:45:17 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Oct 02 10:38:05 2018 -0400"
      },
      "message": "VOL-1247 : Modified change tuple to include previous and latest data\n\nVOL-1214 : Fixed logs to use the proper mechanism\n\n- Added missing license\n- Moved one change tuple statement which would not include proper info\n\nChange-Id: I5a02f6fe92c8b193642294d62f4413ac6edc0c62\n"
    },
    {
      "commit": "06c4a74a28b448d56a3efc82a13b9b1d11482134",
      "tree": "7c247c5f5edac6f326ef84fa9c82964febe5a694",
      "parents": [
        "88fbe7f5f05cfb71efb3d0baefba7301bfc8d296"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Mon Oct 01 11:09:32 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Mon Oct 01 11:09:32 2018 -0400"
      },
      "message": "VOL-1255: Fixed an issue with the proxy implementation\n\n- Had to change the model slightly to mimic a polymorphic behaviour\n\nChange-Id: I12017cdfedf5c0ed05243245aa2a811556222e0f\n"
    },
    {
      "commit": "88fbe7f5f05cfb71efb3d0baefba7301bfc8d296",
      "tree": "c9f2bbf0c0604475e1b26cd1426bb0cc81ceef6d",
      "parents": [
        "7da372dc4eeb1865fe0115354aad098398aa15be"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Sep 25 12:25:23 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Sep 25 12:25:23 2018 -0400"
      },
      "message": "VOL-1174: Keep only latest data and apply changes only when committed.\n\nChange-Id: I2311eb9cf1487b39f23066df50d19b47fd5c7dcc\n"
    },
    {
      "commit": "2c6f16759e74e10c340401ed9b251fc246961a76",
      "tree": "340863eb2b22240358cc7c5ed390402fe4dc67a4",
      "parents": [
        "9a4689630eff5834207269a224e3a8652b4407e9"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Sep 20 23:14:41 2018 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Sep 20 23:14:41 2018 -0400"
      },
      "message": "This commit consists of:\n1) Fixing the core tests\n2) Fix an error in the logger where the runtime stack trace behaved\ndifferently in go 1.10 vs go 1.9.\n3) Minor other fixes\n\nChange-Id: I1263df38ffcd733174f776a0901583cfb59c616e\n"
    },
    {
      "commit": "b92035435f2922c41cb9c9c078de2abe7367b008",
      "tree": "d12930c4e0bf026551724fc5a820da0945999c5d",
      "parents": [
        "e16186c3874c911c426263ba11919ce6cad07099"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Mon Sep 17 22:56:37 2018 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Tue Sep 18 10:53:57 2018 -0400"
      },
      "message": "This commit consists of the following:\n1) The kafka messaging proxy in Twisted python for adapters\n2) Initial implementation and containerization of ponsim OLT adapter\nand ponsim ONU adapter\n3) Initial submission of request and response facade in both Twisted\npython and Go Language\n4) Initial implementation of device management and logical device management\nin the Core\n5) Update to the log module to allow dynamic setting of log level per\npackage using the gRPC API\n6) Bug fixes and minor changes\n\nChange-Id: Ia8f033da84cfd08275335bae9542802415e7bb0f\n"
    },
    {
      "commit": "e16186c3874c911c426263ba11919ce6cad07099",
      "tree": "c51d841fa4764cdc25bd04cf9599050fd7165a88",
      "parents": [
        "694e2b93b92594c8725d5cb99a1aa19d764584a7"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Sep 11 10:46:34 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Tue Sep 11 10:46:34 2018 -0400"
      },
      "message": "VOL-1174: Ported transaction support to go data model\n\nChange-Id: I4cabefac36c95f690aa121c71f36b6aaf41180b0\n"
    },
    {
      "commit": "694e2b93b92594c8725d5cb99a1aa19d764584a7",
      "tree": "c5cdacb430331c4f6cfdaa1c5fa4f7f4c7964cd5",
      "parents": [
        "ec0919b4527fcc7fcc531d78c687b1bfbadcdf0f"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri Sep 07 12:17:36 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri Sep 07 12:17:36 2018 -0400"
      },
      "message": "VOL-1176: Ported callback mechanism\n- Updated some files with the license block\n\nChange-Id: I61db400b3a72c4915f4f3f17cc7a110313c2d25e\n"
    },
    {
      "commit": "ec0919b4527fcc7fcc531d78c687b1bfbadcdf0f",
      "tree": "828a21f3b930388aa8281535aec86e6472ed84e9",
      "parents": [
        "bf6e7bb28d756618e6e721a90e1ec64f6490f2f1"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Sep 05 14:14:29 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Wed Sep 05 14:14:29 2018 -0400"
      },
      "message": "VOL-1175: Added proxy CRUD for new data model\n\nChange-Id: Ie218a2567746d87a951f23aa6b774b2f01541cf9\n"
    },
    {
      "commit": "bf6e7bb28d756618e6e721a90e1ec64f6490f2f1",
      "tree": "9e3c147ce12a542568f7aba92fd17289f1f4b849",
      "parents": [
        "7dfae95a70e8c04d8c7d7c90eb2caf3654778e33"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Tue Aug 14 22:27:29 2018 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Tue Aug 14 22:27:29 2018 -0400"
      },
      "message": "[VOL-1158] Initial commit of grpc voltha service handler.  Also\nadd license to all files.\n\nChange-Id: I923a53504c74939c1db8177df6197694f2c2b3cd\n"
    },
    {
      "commit": "4a2564d4414c89e742d4063a2dac7dc41a13d4bb",
      "tree": "b9786a70f45a6858d4703063af41bfc5f606678c",
      "parents": [
        "5c11af796e0cc753f90636a44032894a8fac3f66"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Jul 26 11:02:58 2018 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Jul 26 11:03:09 2018 -0400"
      },
      "message": "VOL-1027 : Initial commit of voltha 2.0 data model\n\nChange-Id: Ib8006de1af2166281ccf1c9d7c2b9156991bf4e4\n"
    },
    {
      "commit": "5c11af796e0cc753f90636a44032894a8fac3f66",
      "tree": "f53d183f96af09dc7de57d01623c9be254e9a447",
      "parents": [
        "cfee5f4f8bb8c3a79bf25b5a3a1bd0c6998a6f24"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Fri Jul 20 17:21:05 2018 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Fri Jul 20 17:21:05 2018 -0400"
      },
      "message": "Update the RW Core configuration to accept similar configuration as the\nTwisted Python Voltha Core.\n\nChange-Id: Ic9b497dd2b2160d76c941f5115e8e6d0271916e9\n"
    },
    {
      "commit": "cfee5f4f8bb8c3a79bf25b5a3a1bd0c6998a6f24",
      "tree": "4ed2f71f4134bee002d52c8e8d57dd4a22e41f1d",
      "parents": [
        "c300385582fe6db5f79a2381973ff19918a2a9b0"
      ],
      "author": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Jul 19 22:47:38 2018 -0400"
      },
      "committer": {
        "name": "khenaidoo",
        "email": "knursimu@ciena.com",
        "time": "Thu Jul 19 22:47:38 2018 -0400"
      },
      "message": "First voltha-go commit.  This commit is focussed on setting up the voltha-go structure as well as the kvstore library\n"
    }
  ]
}
