)]}'
{
  "log": [
    {
      "commit": "b469d249152ad1fba3ac11a8feef109b1859a7f6",
      "tree": "ac06c6681d0211ea933326d8321c11c65ece7899",
      "parents": [
        "bcdfd06a83529a70e003ae94d62c5007c141cf98"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sat Jan 03 19:37:39 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@tux.cs.princeton.edu",
        "time": "Sat Jan 03 19:37:53 2015 -0500"
      },
      "message": "Fix bugs. Reefactor.\n"
    },
    {
      "commit": "9c308fca43f8248a4d0880791b6fd3a8a2acc71d",
      "tree": "e7ede7f46fa672b1e6ba9a0c36f21f45e784ac98",
      "parents": [
        "8fd852b544000d421993119a02c8fe641fa5f796"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Aug 22 03:07:59 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Aug 22 03:07:59 2014 -0400"
      },
      "message": "Sometimes, backend_status can fail because of unicode issues. Ignore\nfor now.\n"
    },
    {
      "commit": "8fd852b544000d421993119a02c8fe641fa5f796",
      "tree": "fd95f9cd6c2f28c6574ee420fcdb77b4a195fbd0",
      "parents": [
        "7e482ded46c064ef3822af4a2a78e0b4ba56537f"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Aug 22 03:06:03 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Aug 22 03:06:03 2014 -0400"
      },
      "message": "More verbose backend_status field\n"
    },
    {
      "commit": "7e482ded46c064ef3822af4a2a78e0b4ba56537f",
      "tree": "342b91530feabd22ed4c33bb271a52cb13423304",
      "parents": [
        "cfef6ef7f9874d8878bbaa125734e702a88de264"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Aug 22 03:05:13 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Aug 22 03:05:13 2014 -0400"
      },
      "message": "Propagate backend_status to failed dependent objects\n"
    },
    {
      "commit": "cfef6ef7f9874d8878bbaa125734e702a88de264",
      "tree": "8196b64e9a47b943985b2ece3e46d83a5fd21c0a",
      "parents": [
        "d9468eb76bdc1e574270205778f681336bdaede3"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Aug 20 03:04:03 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Aug 20 03:04:03 2014 -0400"
      },
      "message": "Bug fix from Scott Baker. If a peer object is not set, it means there is\nno dependency.\n"
    },
    {
      "commit": "d9468eb76bdc1e574270205778f681336bdaede3",
      "tree": "9774ab6a9bf4bd98e1439ebb27164351a269b3a6",
      "parents": [
        "cf219ce51ea3b9dacce089e82ac78345b9a1a741"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Aug 20 03:03:12 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Aug 20 03:03:12 2014 -0400"
      },
      "message": "Minor bug fix\n"
    },
    {
      "commit": "f1d3d273b14a40859229c0d03bc4b2b16e2d93c2",
      "tree": "a7d6a0de7f4804f9e8423b883847a661a8cd3bb4",
      "parents": [
        "6810db24d99643479924046a6587c10fc9ad5ad8"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Aug 18 02:24:22 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Aug 18 02:24:22 2014 -0400"
      },
      "message": "Trying to commit an unsaved object with fields set causes the database\nto lock up.\n"
    },
    {
      "commit": "0652f4e589dd85d3632219af5dc90f40418a6fc1",
      "tree": "f23604cab23c8ecaeec27eef1bd4953842c53454",
      "parents": [
        "a2e881cf7ea904854044c29943fc19a9ad1aba99"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Aug 19 15:49:27 2014 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Aug 19 15:49:27 2014 -0700"
      },
      "message": "fix failed dependencies not taking type of objects into account\n"
    },
    {
      "commit": "217656607c29b37706b21ad487f9b9f37d04eb28",
      "tree": "daad21185d7d851434854a1477f46a6a7063e463",
      "parents": [
        "a5593a23a625c033f5133df873c819daacb31e98"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 08:59:30 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 16:25:15 2014 -0400"
      },
      "message": "Provide default implementation of fetch_pending to remove redundant code\nfrom steps.\n"
    },
    {
      "commit": "a358f0fb280d3da6938575be3d9c5d4a4a7e3f7a",
      "tree": "1ded187cbecc3c1a2068839a98547d35da21ff50",
      "parents": [
        "511ea5f61a5db72e000c801789bf5f88e8c7009a"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Jul 21 23:21:23 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 16:23:48 2014 -0400"
      },
      "message": "Rename observer to openstack_observer, making room for more convenient\nswitching to a different observer.\n"
    },
    {
      "commit": "e17bc5b218299074240e10d7c1082f85ff9d731c",
      "tree": "a273062a3240b850827c05daa595a0f983e97b03",
      "parents": [
        "6082336af70681006aea618f28b951bbf47460a8"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 30 00:53:06 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 16:20:22 2014 -0400"
      },
      "message": "Added deletion field to fetch pending method.\n"
    },
    {
      "commit": "6082336af70681006aea618f28b951bbf47460a8",
      "tree": "e41026d8d784f7b41bc363fc1c1ee3e813b9bedd",
      "parents": [
        "130278134f19945d61e26bbd80d3f5416a8294df"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 30 00:52:32 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 16:20:22 2014 -0400"
      },
      "message": "Execute deletors and purge record.\n"
    },
    {
      "commit": "c860243627a68de0ee40961f4a902a8d5c0aed06",
      "tree": "3d83ed197f45f769cc6f48d910b37f7c0815c53f",
      "parents": [
        "3a6811e649a57c905df924d868f309d62b3101ef"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 29 20:33:51 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 16:08:38 2014 -0400"
      },
      "message": "New version of delete, which marks as delete instead of removing an\nobject.\n"
    },
    {
      "commit": "ea53ad37d13f45ed98cbf9270080d60124bde576",
      "tree": "a05b0ac6f69d6ca3a3619422a92e15b628f08ea7",
      "parents": [
        "d507f43cf1391b182dfe7e9f6929ff48d55801bb"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 29 00:42:40 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 16:07:58 2014 -0400"
      },
      "message": "Updated backend status during call\n"
    },
    {
      "commit": "31ebe5c101fdad8f3252df972c2774845460f961",
      "tree": "d56277b84774c8417a55da918aa75b9e1f0c0ab2",
      "parents": [
        "eba084322f606b37466cd86b55c27e9edab7f633"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 29 00:24:09 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 16:06:51 2014 -0400"
      },
      "message": "Map errors and feed them into the database.\n"
    },
    {
      "commit": "eba084322f606b37466cd86b55c27e9edab7f633",
      "tree": "04a1cf43c801784fb865dc770de66c9ce07ccca7",
      "parents": [
        "47b9bf2ce479bfe5a162f54c6601d69797e1dcb4"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Apr 28 23:58:36 2014 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Jul 23 16:06:51 2014 -0400"
      },
      "message": "Feed errors that occur in the back end in the backend_status field\n"
    },
    {
      "commit": "105b6b7b4b67eca7b49bcbf13977519e574b60bf",
      "tree": "f00068cd857b19f966c3d54ae472dad87ce0d675",
      "parents": [
        "165e5ef0d3fd11fa5aa85a15cacfe2295874fc45"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon May 12 10:40:25 2014 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon May 12 10:40:25 2014 -0700"
      },
      "message": "changes from alpha site\n"
    },
    {
      "commit": "04111b7ca6d69048e3be696a93fb25dc6c935642",
      "tree": "089b823d378fb9b15244e4e6effc5f1d2cef2519",
      "parents": [
        "37146d2b1ce3d8b91e81dab8e9ed90d107c10619"
      ],
      "author": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Tue Oct 22 16:47:10 2013 -0400"
      },
      "committer": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Tue Oct 22 16:47:10 2013 -0400"
      },
      "message": "Log to /var/log/planetstack.log instead of observer.log in current directory."
    },
    {
      "commit": "37146d2b1ce3d8b91e81dab8e9ed90d107c10619",
      "tree": "82bc2e84a31e63318ca9f6a88f05b6227fdf4b38",
      "parents": [
        "a6cbd364e821e33a33a7f79b588f8d345d15db63"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Mon Oct 21 11:02:51 2013 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Mon Oct 21 11:02:51 2013 -0400"
      },
      "message": "fix name error\n"
    },
    {
      "commit": "e7abb62a92c4da97b570ac75334efe935a2e39e2",
      "tree": "b0d1acbaa08bacc389638cf3c40d99d2160e662b",
      "parents": [
        "606bf0e2689aa5ec808b07019b989f227baa17cf"
      ],
      "author": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Fri Oct 18 15:11:56 2013 -0400"
      },
      "committer": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Fri Oct 18 15:11:56 2013 -0400"
      },
      "message": "Log failures in sync steps"
    },
    {
      "commit": "ca2e21fd16bdad6fff95c44bfac87f31263056fd",
      "tree": "25df2c33a2b3d0667457b82f80e9cbf634bb38a9",
      "parents": [
        "972a2e82a316ef2fc042a82d9380d8c2b79b22b2"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Oct 02 01:10:02 2013 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Oct 02 01:10:02 2013 -0400"
      },
      "message": "Fixed issues in object dependencies\n"
    },
    {
      "commit": "4fa85fb13f41338f263ae0b2b9d39aec87703d8b",
      "tree": "f95db0c80a94cfb78d0b0d6c693091b0ba99b6a0",
      "parents": [
        "68e818d7784c2c1950962f9890c8ee3ef0685924"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Wed Sep 25 14:39:57 2013 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Wed Sep 25 14:39:57 2013 -0400"
      },
      "message": "fix bugs\n"
    },
    {
      "commit": "68e818d7784c2c1950962f9890c8ee3ef0685924",
      "tree": "02cf7469748a8a2741fae1d2c998dc698fcf6196",
      "parents": [
        "ad5ed9e79e1ec43007b47befcf5173a9aad97d67"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Wed Sep 25 13:34:17 2013 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Wed Sep 25 13:34:17 2013 -0400"
      },
      "message": "remove redundant check\n"
    },
    {
      "commit": "16f04743327d002cd153ed17bcb9b928b7f14b5a",
      "tree": "5be30f9db9365c3e033481f3044a7ac736c22f9b",
      "parents": [
        "ea41f56b95951ae9c5e73906c3803b815fb64278"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Wed Sep 25 08:53:28 2013 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Wed Sep 25 08:53:28 2013 -0400"
      },
      "message": "fix bugs\n"
    },
    {
      "commit": "66646d55de74e54e91ccd08db04f326ae8e5f522",
      "tree": "f4289de4b3b12036b8986f9bb4cf7793b8c95739",
      "parents": [
        "c12d5ca159b7808a3f35beae4ec76b0eb090d7c0"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Tue Sep 24 21:47:12 2013 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Tue Sep 24 21:47:12 2013 -0400"
      },
      "message": "implement fetch_pending()\n"
    },
    {
      "commit": "ce79de09a6a65b2be1de89c0ad9e74cf544f2db2",
      "tree": "0025277076bff070b303ee3442b873a4a185cfb9",
      "parents": [
        "57c162818d297f8e075eca3bd954b0c26674b861"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Tue Sep 24 10:12:33 2013 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Tue Sep 24 10:12:33 2013 -0400"
      },
      "message": "tabs, bugfixes\n"
    },
    {
      "commit": "387a73f79ab3fb6b9c2168f9c8975956281d4bfc",
      "tree": "4550760115e794c63d92a15ab3dd978283fee22e",
      "parents": [
        "3a0e66b78faf39ea99cd574b56deec2155ec80b6"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Wed Sep 18 07:59:14 2013 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@paris.CS.Princeton.EDU",
        "time": "Wed Sep 18 07:59:14 2013 -0400"
      },
      "message": "instantiate sycn steps with openstack driver. Implement garbage collector and deleters\n"
    },
    {
      "commit": "04c94ad7d56a164d1f1a5d05c3b5ced5d792bae2",
      "tree": "6df9d951f1e4b0ab620d9d46d0bce5021de3dbcc",
      "parents": [
        "f48c0444527cdc597dcd913658d743d9d098f942"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Sep 02 18:00:28 2013 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Sep 02 18:00:28 2013 -0400"
      },
      "message": "Wide range of debugging changes\n"
    },
    {
      "commit": "13c7f114712b9b49abc1c46357dc309afdbe7fb1",
      "tree": "264aa25b39acda9ed05dd763546fb0245788f27b",
      "parents": [
        "24836f18c96de50f93cacb2be40f311f66e4876a"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Sep 02 14:19:35 2013 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Sep 02 14:19:35 2013 -0400"
      },
      "message": "Class and object dependencies, schedules\n"
    },
    {
      "commit": "24836f18c96de50f93cacb2be40f311f66e4876a",
      "tree": "5791adb35bddaadab9a011cf1238a724bf71d4d5",
      "parents": [
        "f61e17af98a435ab1eac843ee865abff81f5fa4c"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Aug 27 10:16:05 2013 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Aug 27 10:16:05 2013 -0400"
      },
      "message": "Sync refactored into abstract steps\n"
    }
  ]
}
