)]}'
{
  "log": [
    {
      "commit": "7dac966d097336a7c93c1c525687ca044e92d2a8",
      "tree": "543f1c4344c0fc1cc43c7d24f1b40862d72c4429",
      "parents": [
        "6a5024c3f15c17022552ad5570ef346f1aa61a37"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 18:49:55 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 18:49:55 2015 +0200"
      },
      "message": "Resolve discrepancy between ids Fixes #68 and #69.\n\nNote: This change must be deployed with change 796ac395af6a58409190c6c2d841a8cd6437f77e in ansible-modules\n"
    },
    {
      "commit": "30d993fc4b7ef1a82a7730a7ba81ebd61d1c76a6",
      "tree": "d48a2d9a15d4d3187fb1be3d78ca035c429d7a6d",
      "parents": [
        "1eecb2e3b7a62ac219b45b27f091ca41a261b113",
        "78548a53623fe60740b14507f57240e23876b678"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 15:54:23 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 15:54:23 2015 +0200"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:open-cloud/xos\n"
    },
    {
      "commit": "1eecb2e3b7a62ac219b45b27f091ca41a261b113",
      "tree": "90185ededac491712fd0d14f09c48afaa21240a7",
      "parents": [
        "df85e809874f68321c3d6d8284280afd533f2e52"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 15:52:45 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 15:52:45 2015 +0200"
      },
      "message": "Fix update of backend status fields\n"
    },
    {
      "commit": "df85e809874f68321c3d6d8284280afd533f2e52",
      "tree": "f7e650294c621d89b9be7914df6e0f6eb423c59f",
      "parents": [
        "01298ed0a54de2c022bffd5d547ddfd94622237f"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 15:51:29 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 15:51:29 2015 +0200"
      },
      "message": "Suppress extra newline in ansible output, which prevents playbook from running\n"
    },
    {
      "commit": "01298ed0a54de2c022bffd5d547ddfd94622237f",
      "tree": "fccc312b27e07346d2441b540504f9ca6eb7fa53",
      "parents": [
        "2524f6b88f121a679c878bc7f708bef1dcfc06c9"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 15:51:03 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed May 13 15:51:03 2015 +0200"
      },
      "message": "Support for innocuous exceptions. Fail and retry, but do not report as error in GUI.\n"
    },
    {
      "commit": "78548a53623fe60740b14507f57240e23876b678",
      "tree": "b8cc7bba2fd0ec0408348c3ad1028bef55368781",
      "parents": [
        "93a58b3247813f67d95536af6336c821c92f41b7"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 12 18:54:36 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 12 18:54:36 2015 -0700"
      },
      "message": "private key must not be world or group readable\n"
    },
    {
      "commit": "686add61003348668d416b837362a4555d683947",
      "tree": "155e85743544de72c5d2d7f7e295aa8a075721dc",
      "parents": [
        "af09d37aca0efc351edd5053aa7680311d29e465"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 12 16:20:24 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 12 16:20:24 2015 -0700"
      },
      "message": "save the stderr output also\n"
    },
    {
      "commit": "af09d37aca0efc351edd5053aa7680311d29e465",
      "tree": "20788fb9c4a5e7e6baf5dddc5e350e8ae4516a7c",
      "parents": [
        "366453b9fd3a858e61d20a1169cc9a718d321a9b"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 12 16:14:59 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 12 16:14:59 2015 -0700"
      },
      "message": "add save_ansible_output option; for ssh-ansible use named files rather than tmp files; refactor get_playbook_fn\n"
    },
    {
      "commit": "1736dba2e3ec57b38d82a3a78ca1b792146e06bd",
      "tree": "bdc90d16b6ac5e2ceaa45eaebbd0129879fba432",
      "parents": [
        "8d92e7aecd9efaa66832083f76a58cb31bc134aa"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 12 11:07:18 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 12 11:07:18 2015 -0700"
      },
      "message": "return error if ansible has unreachable results\n"
    },
    {
      "commit": "5d51807695cc6149b73cc551b52f6bb0af17b794",
      "tree": "6f5d55e5e702731dbd9d9b9ce54a44b7495725f8",
      "parents": [
        "e8d50193d23fcf66afa42f4e4f4f582a7d16cbbf"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Sat May 09 18:18:56 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Sat May 09 18:18:56 2015 +0200"
      },
      "message": "Minor tweaks, indentation issues\n"
    },
    {
      "commit": "e8d50193d23fcf66afa42f4e4f4f582a7d16cbbf",
      "tree": "e88d4374169beb5c0a2dc0a8933432e7ae3963c5",
      "parents": [
        "78b79e781a2dc12f61250d96c0649320ebc8638a"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Sat May 09 18:17:39 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Sat May 09 18:17:39 2015 +0200"
      },
      "message": "Switched tenant deletion to Ansible\n"
    },
    {
      "commit": "78b79e781a2dc12f61250d96c0649320ebc8638a",
      "tree": "efdf662a2e323bc14f863fb0993033143a6690f5",
      "parents": [
        "06b1a885d9b75699b56077bb0d5bd822b1421d67"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Sat May 09 18:16:24 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Sat May 09 18:16:24 2015 +0200"
      },
      "message": "Switched network deletion over to Ansible\n"
    },
    {
      "commit": "06b1a885d9b75699b56077bb0d5bd822b1421d67",
      "tree": "9e954ced462ab4f5657613cba824dc2e93f355dd",
      "parents": [
        "a4fadacca4aa85d76c6e023561df8a7c908180f7"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Sat May 09 18:14:40 2015 +0200"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Sat May 09 18:14:40 2015 +0200"
      },
      "message": "Added support for disabling controllers when they are down\n"
    },
    {
      "commit": "e78aef1483850a4c839abd8dbd52004420619520",
      "tree": "ce184a0e33c267f8cc39eaace699c584f7c1f41c",
      "parents": [
        "f46cec1a1121a5a7a7aff597c68dfc693b75eaa0"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu May 07 15:54:47 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu May 07 15:54:47 2015 -0700"
      },
      "message": "fix typo\n"
    },
    {
      "commit": "f16ed2259126548c562f4bc4ce8b966983295423",
      "tree": "bb02f2f7e099b996cdcec1ceead5799aab15408b",
      "parents": [
        "f6790dbc96ac1140b72771ae201408dfc7545efa"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed May 06 15:47:15 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed May 06 15:47:15 2015 -0700"
      },
      "message": "turn off strict host key checking\n"
    },
    {
      "commit": "edc8a20e25d30605bd11d9b520bd3cd7d5fe28f2",
      "tree": "08c19c62ce6d77383208215db85e89392f7dc42a",
      "parents": [
        "2dfcbf8270e94d5de8b55a92c59f40f5425e81c1"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed May 06 12:35:11 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed May 06 12:35:11 2015 -0700"
      },
      "message": "verbose ansible script\n"
    },
    {
      "commit": "1c0496a54ab315abd143b47ff809bcbe487ea940",
      "tree": "0ce14e00b617751ce0cbf1334aaf656e2e7b2d6b",
      "parents": [
        "ff8a4bcade8dd55d84438becb9a7db34a939e033"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 05 10:18:17 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue May 05 10:18:17 2015 -0700"
      },
      "message": "make observers stoppable by keyboard interrupt\n"
    },
    {
      "commit": "2f8608b032db106d9179d04ee8a39cf757a0f2e3",
      "tree": "29b8ca5f50d5504cdf6bc527723411c174432e8e",
      "parents": [
        "dec77b52ebafd5da4d59daf3988a30e7851fd7cf"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon May 04 18:30:09 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon May 04 18:30:09 2015 -0700"
      },
      "message": "fix path of default run_ansible script\n"
    },
    {
      "commit": "dec77b52ebafd5da4d59daf3988a30e7851fd7cf",
      "tree": "1d9714722e417c293d3c65849a70419cdf655b22",
      "parents": [
        "b000601ed30f4522d195142ee1a8bea27ecc872a"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon May 04 18:20:14 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon May 04 18:20:14 2015 -0700"
      },
      "message": "run_temlpate_ssh(); report ValueError message; use subprocess.Popen instead of os.popen\n"
    },
    {
      "commit": "5fb6832d9d71278b79a458d460aed8526c4563a0",
      "tree": "489c495fbd8b459939e3e3666ee248d3aeff334d",
      "parents": [
        "5b04461f72848496f21c58b941bb9bddb2a422cb"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Apr 30 14:56:46 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Apr 30 14:56:46 2015 -0700"
      },
      "message": "refuse to instantiate sliver if private network is not ready\n"
    },
    {
      "commit": "5b04461f72848496f21c58b941bb9bddb2a422cb",
      "tree": "9470f258181bcfc6eab206315e6b9e89b6adb7db",
      "parents": [
        "a0e55a9de9e7dafe9c69086261649549af418964"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Apr 30 14:30:56 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Apr 30 14:30:56 2015 -0700"
      },
      "message": "add service.public_key; make sync_slivers get image id from ControllerImage object\n"
    },
    {
      "commit": "3d56f041d7dcc16532c89f724003defea8041b43",
      "tree": "b07d4ec3d942935c1a20f7a1894a2c40a915f4b4",
      "parents": [
        "e09fb9829a08becad06500c27e9734f8d7ebe57c"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 21 17:47:07 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 21 17:47:07 2015 -0400"
      },
      "message": "Fixed a typo\n"
    },
    {
      "commit": "e09fb9829a08becad06500c27e9734f8d7ebe57c",
      "tree": "5d8aa790311a2260d3c11eea4b84ba692a08e3aa",
      "parents": [
        "8d29e6bfbf3b85bb4471b5cd41be180bf9fcda4f"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 21 17:37:51 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 21 17:37:51 2015 -0400"
      },
      "message": "Lazy creation of Neutron Networks. The creation of networks is deferred to when the first Sliver for a slice is created on a given controller, rather than at Slice creation time. Resolves #74\n"
    },
    {
      "commit": "7f252d043de60a32af39d9937002c6dcd76099eb",
      "tree": "2c07ef0595265e76ed8585270da1ab0e438ad67c",
      "parents": [
        "86492f5adf36b452b52c75d7362e07e6af56f6b9",
        "a4025e9311559333e31567d3d23db76defe8c020"
      ],
      "author": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Fri Apr 17 14:41:56 2015 -0400"
      },
      "committer": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Fri Apr 17 14:41:56 2015 -0400"
      },
      "message": "Merge branch \u0027fixes\u0027\n"
    },
    {
      "commit": "a4025e9311559333e31567d3d23db76defe8c020",
      "tree": "79c39c42f84e4303ab0a580bdc77411ff986d888",
      "parents": [
        "9473f5e579a987a7381f8cdb9f3abb4f2fdda4bb"
      ],
      "author": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Fri Apr 17 14:40:57 2015 -0400"
      },
      "committer": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Fri Apr 17 14:40:57 2015 -0400"
      },
      "message": "Account for change in playbook\n"
    },
    {
      "commit": "9473f5e579a987a7381f8cdb9f3abb4f2fdda4bb",
      "tree": "fa84acd29433a96a263c19ae1bab998d7efba1b6",
      "parents": [
        "4492366ade0b060e1eaed22cc80f6250a9874c8b"
      ],
      "author": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Thu Apr 16 13:41:50 2015 -0400"
      },
      "committer": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Thu Apr 16 13:41:50 2015 -0400"
      },
      "message": "Fix problems with generated user data\n"
    },
    {
      "commit": "85d7cd5619e732058849c6cb5bf2606671f1e1a6",
      "tree": "ad8b738f87732f78f1c576bacd5ad9dd862cb89d",
      "parents": [
        "75210d3365274239d67dc6f8fac0865d62932ca7"
      ],
      "author": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Thu Apr 16 13:31:33 2015 -0400"
      },
      "committer": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Thu Apr 16 13:31:33 2015 -0400"
      },
      "message": "Fix problems with generated user data\n"
    },
    {
      "commit": "495e8f78cfaa726ad75fc3d704dd23cf62537988",
      "tree": "773d2e072e317ce43e55aca0b59d4c06164d1a37",
      "parents": [
        "380509547299d8b9ca5d65091b0960d2d859336f"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:31:37 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:34:44 2015 -0400"
      },
      "message": "Fixed typo, set default value of pretend to false\n"
    },
    {
      "commit": "380509547299d8b9ca5d65091b0960d2d859336f",
      "tree": "8d7b122af5f0cb6266da01b6c15837d428cac5b9",
      "parents": [
        "16df72173c8e56ad7ac0b2183fdc3314c993b6c6"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:31:12 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:34:44 2015 -0400"
      },
      "message": "Read xos_dir out of config file\n"
    },
    {
      "commit": "c7a09c8e4efaf728f522f4fa23ee925b841e2a28",
      "tree": "150ac5c5ad347114273fd7dd1905ebab8aa52106",
      "parents": [
        "84cdde709dee20dc7496ed48161582079c57212b"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:31:37 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:31:37 2015 -0400"
      },
      "message": "Fixed typo, set default value of pretend to false\n"
    },
    {
      "commit": "84cdde709dee20dc7496ed48161582079c57212b",
      "tree": "84f75ab2c59a2282f5c4870543e37a99f90e4abb",
      "parents": [
        "8034bac0a953fed5d15b5923de88e9c6c7157643"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:31:12 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:31:12 2015 -0400"
      },
      "message": "Read xos_dir out of config file\n"
    },
    {
      "commit": "8034bac0a953fed5d15b5923de88e9c6c7157643",
      "tree": "6dc19debcd593a97565c75b1bbcf22156147123b",
      "parents": [
        "e9ff7ce51ddadae5b5b91eb4c58568bcb6946349"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:04:08 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 13:04:08 2015 -0400"
      },
      "message": "Fix missing import in ansible.py\n"
    },
    {
      "commit": "16df72173c8e56ad7ac0b2183fdc3314c993b6c6",
      "tree": "a4767a30c4826d3f6e0568342b27523eb2fe891f",
      "parents": [
        "a8892c1684b0c2dd38af8d42ec364f206b24a822"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 12:59:20 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 15 12:59:20 2015 -0400"
      },
      "message": "Added missing import. Fixes #67.\n"
    },
    {
      "commit": "772fa3c606777bfcb037535fce21c78fcb9da4a2",
      "tree": "5778937e05ee978cfaf2e0e99a13771090143236",
      "parents": [
        "67cdef4b0ba1155169b1d2b3ca472efc6cf9d9f1"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Apr 13 17:24:18 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Apr 13 17:24:18 2015 -0700"
      },
      "message": "protect against crashes in ns.save()\n"
    },
    {
      "commit": "ff7da47d0e4012d6553a6ff0a1d11bc55b7c1676",
      "tree": "8412c7f5c8f7ff3720b6a25a5576ffd583f6e4fd",
      "parents": [
        "57a8c68b6676ba2162272b92075dc2b8a30c42d7"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 07 17:43:44 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Tue Apr 07 17:43:44 2015 -0400"
      },
      "message": "Prevent Observers other than the Core Observer from running model policies. This resolves the duplicate object issue, which would cause multiple dependent objects such as ControllerNetwork objects to be created automatically. Solves #65.\n"
    },
    {
      "commit": "258176e73df7ad36fb67c46d13e27e4d39a29c3f",
      "tree": "de62f11e77ac79a4913498d1ec2f0a6d5ba9d5ed",
      "parents": [
        "17421f90f800e967f8fd75872fa5ed8f07355965"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 01 17:55:45 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Apr 01 17:55:45 2015 -0400"
      },
      "message": "Fix issue with spaces in objects\n"
    },
    {
      "commit": "1cd422cf54732e336add882c720e4b6f07fa6431",
      "tree": "163725fb8b4ef4bc3408b15c90ef81999c5f4735",
      "parents": [
        "a73c216f17560c8820440cebcfa85c1d6f209ba5"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Mar 31 15:18:50 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Mar 31 15:18:50 2015 -0700"
      },
      "message": "use self.observer_name for the observer_last_run file also\n"
    },
    {
      "commit": "a73c216f17560c8820440cebcfa85c1d6f209ba5",
      "tree": "07a108452297beb64a5ac13419b0eb3702059135",
      "parents": [
        "00795bba2706c20ddb704380a17fff74fd9095db"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Mar 31 15:06:55 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Mar 31 15:06:55 2015 -0700"
      },
      "message": "observer_name used in timing files (changes copied from portal)\n"
    },
    {
      "commit": "a9b626f7fab45da2937899a23c019134bb5de525",
      "tree": "2d4d09da16a82d4239df15869a2f1f4b2842d3b9",
      "parents": [
        "4d0d75c3ed3852d26cbec51c3a9c468dc7529eef"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@cs.princeton.edu",
        "time": "Sun Mar 29 08:55:39 2015 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@cs.princeton.edu",
        "time": "Sun Mar 29 08:55:39 2015 -0400"
      },
      "message": "step to purge disabled user records after 1 week\n"
    },
    {
      "commit": "4d0d75c3ed3852d26cbec51c3a9c468dc7529eef",
      "tree": "13815de81617ce52b9e5a87fe5e8bfc259322e32",
      "parents": [
        "e7a6dc1296ff8de53222174684c8b6a8c8005e73"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@cs.princeton.edu",
        "time": "Sun Mar 29 08:32:21 2015 -0400"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@cs.princeton.edu",
        "time": "Sun Mar 29 08:32:21 2015 -0400"
      },
      "message": "log messges are written to /var/log/observer.log\n"
    },
    {
      "commit": "65b22de65903da5355796d61fad9b74b0f09b890",
      "tree": "2cd693bd9b6ad1afd8ddcfa0bc4dd50629570c4f",
      "parents": [
        "b44ec72d775d782d14cdf3fae83c36b7f7fbc373"
      ],
      "author": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Wed Mar 18 15:59:19 2015 -0400"
      },
      "committer": {
        "name": "Andy Bavier",
        "email": "acb@cs.princeton.edu",
        "time": "Wed Mar 18 15:59:19 2015 -0400"
      },
      "message": "Pass SSH keys in userdata\n"
    },
    {
      "commit": "655b93e0c35828c88e29036267e51cd412e08a52",
      "tree": "0aec72c47f9c84ed738797f6bc77e35a3c181f51",
      "parents": [
        "01dd5d27e88c2b7575e6108a610b41865cb703b2"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Mar 16 12:55:23 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Mon Mar 16 12:55:23 2015 -0400"
      },
      "message": "Fix implemented in a debugging session with Marc Fiuczynski\n"
    },
    {
      "commit": "01dd5d27e88c2b7575e6108a610b41865cb703b2",
      "tree": "982534fdf15b9a12a7a6bb1212fc074a60b82a00",
      "parents": [
        "6d6b76cba9fad257107a4e3391b57b18d5663ed9"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Mar 13 18:51:02 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Mar 13 18:51:02 2015 -0400"
      },
      "message": "Redid the pretend mode patch.\n"
    },
    {
      "commit": "6d6b76cba9fad257107a4e3391b57b18d5663ed9",
      "tree": "74c0ec2225a13243b0e2629bcc4236dd339b0b50",
      "parents": [
        "1d019ae2fad410f6ac4e45d50e1c16fced30eb51"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Mar 13 18:43:46 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Mar 13 18:43:46 2015 -0400"
      },
      "message": "Revert \"Pretend mode for the Observer. With this option set, the Ansible recipes for operations are generated, but not executed.\"\n\nTabulation issues...\n\nThis reverts commit 1d019ae2fad410f6ac4e45d50e1c16fced30eb51.\n"
    },
    {
      "commit": "1d019ae2fad410f6ac4e45d50e1c16fced30eb51",
      "tree": "a2fb970cdd0c30cb905ff308f26f387d61550409",
      "parents": [
        "bab59780959d4d5d1df9dd9fa6947dfa9216bf66"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Mar 13 18:20:31 2015 -0400"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Fri Mar 13 18:20:31 2015 -0400"
      },
      "message": "Pretend mode for the Observer. With this option set, the Ansible recipes for operations are generated, but not executed.\n"
    },
    {
      "commit": "7648c58be54c6bfd1edf495e289052308a67111b",
      "tree": "96aab72ec542b727152886b2c39bcfefe9106a52",
      "parents": [
        "309747f768ed4933d08e4b10e2a3cd65e8fe97da"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Mar 10 12:52:29 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Tue Mar 10 12:52:29 2015 -0700"
      },
      "message": "add config file option to disable fofum\n"
    },
    {
      "commit": "745cfa42416c7a94d215c5b2291d3eb4a9ca6ba9",
      "tree": "205400b946687622272c25f8c45097706eb6202d",
      "parents": [
        "fb162a1c044ff9ed222e6d316dc3fdbf0618448a"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Mar 09 16:25:38 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Mar 09 16:25:38 2015 -0700"
      },
      "message": "more debugging info\n"
    },
    {
      "commit": "fb162a1c044ff9ed222e6d316dc3fdbf0618448a",
      "tree": "e07eeb886ebf2ffef96d944021f6c3cb4a84454c",
      "parents": [
        "107b3e288bd9e7825ec74e3dd05d28e37bfd23b5"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Mar 09 16:25:11 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Mar 09 16:25:11 2015 -0700"
      },
      "message": "show in log whether working on deletion or regular steps\n"
    },
    {
      "commit": "107b3e288bd9e7825ec74e3dd05d28e37bfd23b5",
      "tree": "6faf881517132c15bbebbb1aeb028997896f0148",
      "parents": [
        "7b6a9d83cec666461b0de9e6e57d9c38b6127265"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Mar 09 16:24:45 2015 -0700"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Mar 09 16:24:45 2015 -0700"
      },
      "message": "add restapi_hostname and restapi_port to default userdata; check in changes to delete found on portal\n"
    },
    {
      "commit": "aa86bfb05b4d0ad538e0c7e86a94c8940505d4b9",
      "tree": "4a22998b435906ff841139d586c8f1aaadc81988",
      "parents": [
        "1e07de8eef9f54fb409942b86a9d5b390892c109"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Mar 04 21:31:14 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Mar 04 21:31:14 2015 -0800"
      },
      "message": "fix exception while trying to throw DependencyFailed because peer_object has no pk\n"
    },
    {
      "commit": "68c992821c349fc70bc9b104655e15af0a696e9b",
      "tree": "b976919b4b18801102d0cc45debaa3173703b299",
      "parents": [
        "2772805bef4c9f5865be921dc7d02f4ef7307a74"
      ],
      "author": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Mar 04 10:21:06 2015 -0500"
      },
      "committer": {
        "name": "Sapan Bhatia",
        "email": "gwsapan@gmail.com",
        "time": "Wed Mar 04 10:21:06 2015 -0500"
      },
      "message": "Fixed dependency issues in deletions. Resolves #8.\n\n-- The deletion dependency graph was being computed incorrectly\n-- Synchronization primitives were not being renewed for deletion, they were reused from sync\n-- Misc fixes\n"
    },
    {
      "commit": "b6e63f08af0d3160b57264546fef33fbd2d91057",
      "tree": "0bb70b9e41704ee1d8c413eff137d6f6e44b9654",
      "parents": [
        "0989421d152960ac44c04f7c1e62cca4bc426bb3"
      ],
      "author": {
        "name": "S.Çağlar Onur",
        "email": "caglar@10ur.org",
        "time": "Tue Feb 24 17:28:09 2015 -0500"
      },
      "committer": {
        "name": "S.Çağlar Onur",
        "email": "caglar@10ur.org",
        "time": "Tue Feb 24 17:28:09 2015 -0500"
      },
      "message": "get rid of weird looking DOS EOF chars\n\nSigned-off-by: S.Çağlar Onur \u003ccaglar@10ur.org\u003e\n"
    },
    {
      "commit": "5f49fad8bfdf97874e09a9946112693c303a6430",
      "tree": "21004c8266c43187e9d5295af1b383af6d16ca22",
      "parents": [
        "b40c363fcad14089657c3dd7f7f57c0e53e7d096"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@cs.princeton.edu",
        "time": "Tue Feb 24 14:16:43 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@cs.princeton.edu",
        "time": "Tue Feb 24 14:16:43 2015 -0500"
      },
      "message": "fix sync steps\n"
    },
    {
      "commit": "b40c363fcad14089657c3dd7f7f57c0e53e7d096",
      "tree": "b64901a6212dfa93c2f9c9956f8e097fc9e89286",
      "parents": [
        "1e464ffe04db3434718efa394d362a2ce8abab43"
      ],
      "author": {
        "name": "Tony Mack",
        "email": "tmack@cs.princeton.edu",
        "time": "Tue Feb 24 12:20:25 2015 -0500"
      },
      "committer": {
        "name": "Tony Mack",
        "email": "tmack@cs.princeton.edu",
        "time": "Tue Feb 24 12:20:25 2015 -0500"
      },
      "message": "fix AttributeError\n"
    },
    {
      "commit": "1e464ffe04db3434718efa394d362a2ce8abab43",
      "tree": "9ee48984155b54b21573e54fac19a036a1e84c10",
      "parents": [
        "d9d50b46720e43d546d9a0a39a5afcc19a0bd2a5"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 23 18:08:03 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Mon Feb 23 18:08:03 2015 -0800"
      },
      "message": "fix NetworkSliver not autocreated for nat and public networks\n"
    },
    {
      "commit": "0f685ff4666047dc084e65f17ffa90bdd1c02292",
      "tree": "5bc74a545ceda33473e0aeece64ef3672d81959c",
      "parents": [
        "234a59bab8de48436a31f10ab6eba49078fa5d53"
      ],
      "author": {
        "name": "S.Çağlar Onur",
        "email": "caglar@10ur.org",
        "time": "Mon Feb 23 14:40:07 2015 -0500"
      },
      "committer": {
        "name": "S.Çağlar Onur",
        "email": "caglar@10ur.org",
        "time": "Mon Feb 23 14:40:07 2015 -0500"
      },
      "message": "Update sync_controller_slices.py\n\nfixes #50"
    },
    {
      "commit": "ace7ab5a754032a7db181fe619956d9c3ced2972",
      "tree": "0bda30461d4e6432d3384dd7850af5dee712c91b",
      "parents": [
        "d2ebcd4a3a3034a0dd3e1ad9204173c9d8edd5df"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Feb 19 22:25:49 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Thu Feb 19 22:25:49 2015 -0800"
      },
      "message": "rename /etc/planetstack/sync to /etc/xos/sync\n"
    },
    {
      "commit": "bb6043888651c66f7cd816fc9d2f9299e51d560b",
      "tree": "61b7bae4aa9e9f2e31dd67a26180a67d0c8e0b09",
      "parents": [
        "6b504849475891e76d6e1367a73afe13fa427d85",
        "e2641e829faa7e5cad33292081cd3d85267d027d"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Feb 18 23:32:24 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Feb 18 23:32:24 2015 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of github.com:open-cloud/xos\n"
    },
    {
      "commit": "ef20dd5e3af7a646c9b62d0dc95dc6340cc6defe",
      "tree": "2ff0b701b531aaf47d97175b80249dd420185e73",
      "parents": [
        "2868acb128082f7eb6e9abf509c843303c001133"
      ],
      "author": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Feb 18 22:26:13 2015 -0800"
      },
      "committer": {
        "name": "Scott Baker",
        "email": "smbaker@gmail.com",
        "time": "Wed Feb 18 22:26:13 2015 -0800"
      },
      "message": "rename planetstack directory to xos\n"
    }
  ]
}
