)]}'
{
  "log": [
    {
      "commit": "ef6650dd3bfa6247917f430e4d123827b5ba3ed9",
      "tree": "8a9488762c6df8f0b8132e1c520bc77d1d34e50e",
      "parents": [
        "90cd955106f8b6924041e0e0d6ddf843a4ceaff4"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Thu Jul 18 12:15:09 2019 -0400"
      },
      "committer": {
        "name": "khenaidoo Nursimulu",
        "email": "knursimu@ciena.com",
        "time": "Fri Jul 19 15:08:24 2019 +0000"
      },
      "message": "VOL-1775 VOL-1779 VOL-1780 : Fix several issues with overall stability\n\n- Apply changes as reported by golang race utility\n- Added version attribute in KV object\n- Added context object to db/model api\n- Carrying timestamp info through context to help in the\n  decision making when applying a revision change\n- Replaced proxy access control mechanism with etcd reservation mechanism\n\nChange-Id: If3d142a73b1da0d64fa6a819530f297dbfada2d3\n"
    },
    {
      "commit": "c92d107dc36ff962602a6a4781eefbf25d875db6",
      "tree": "6f14aa912094e56a2d787c7bea60068545ce15bb",
      "parents": [
        "926614644463b9b330936a39d6f3f8af88f141ca"
      ],
      "author": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri Jun 07 16:21:49 2019 -0400"
      },
      "committer": {
        "name": "Stephane Barbarie",
        "email": "sbarbari@ciena.com",
        "time": "Fri Jun 07 16:21:49 2019 -0400"
      },
      "message": "VOL-1687 : Fix wrong in-memory node assignments\n\n- Fixed nil pointer with createProxy\n- Changed watch loop to avoid re-starting when rev changes\n\nChange-Id: Ie821788f2422d7a2083398c65b9632c65fae001d\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
