)]}'
{
  "commit": "5edae54855b6b9af4283cef07e0b0d1a0f90cd3e",
  "tree": "38a1c4516ffc6f472f455363fac5bd24c5b65425",
  "parents": [
    "fb73a8fc6fa8cdc826b10c47490bc47cd0e6776a"
  ],
  "author": {
    "name": "Sean Dague",
    "email": "sean@dague.net",
    "time": "Tue Mar 21 20:50:24 2017 -0400"
  },
  "committer": {
    "name": "Sean Dague",
    "email": "sean@dague.net",
    "time": "Tue Mar 28 07:19:15 2017 -0400"
  },
  "message": "initial work to enable systemd service running\n\nDuring the PTG there was a discussion that the screen developer\nworkflow wasn\u0027t nearly as useful as it once was. There were now too\nmany services to see them all on one screen, and one of the most\ncommon service restart scenarios was not restarting one service, but a\nbunch to get code to take effect.\n\nThis implements a 3rd way of running services instead of direct\nforking via bash, or running under screen, which is running as systemd\nunits.\n\nLogging is adjusted because it\u0027s redundant to log datetime in oslo.log\nwhen journald has that.\n\nSwift needed to have services launched by absolute path to work.\n\nThis is disabled by default, but with instructions on using it. The\nlong term intent is to make this the way to run devstack, which would\nbe the same between both the gate and local use.\n\nSome changes were also needed to run_process to pass the run User\nin. A hack around the keystone uwsgi launcher was done at the same\ntime to remove a run_process feature that only keystone uwsgi uses.\n\nChange-Id: I836bf27c4cfdc449628aa7641fb96a5489d5d4e7\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b6ed19335d90469c90e62bce9abc264a4a76418f",
      "new_mode": 33188,
      "new_path": "SYSTEMD.rst"
    },
    {
      "type": "modify",
      "old_id": "872f21691a8302a5cc48bad4641444442d2304ca",
      "old_mode": 33188,
      "old_path": "functions",
      "new_id": "f6679fdebe3f1eea2dc852668c34bdaf91bf48b5",
      "new_mode": 33188,
      "new_path": "functions"
    },
    {
      "type": "modify",
      "old_id": "a86cfd8a63e126a244e9424f501798f18983c967",
      "old_mode": 33188,
      "old_path": "functions-common",
      "new_id": "ec68644757894620af90f2225361ee95dcb0eb49",
      "new_mode": 33188,
      "new_path": "functions-common"
    },
    {
      "type": "modify",
      "old_id": "517e4237ac77f63f41929dc20db304c54b5cd25c",
      "old_mode": 33188,
      "old_path": "lib/dstat",
      "new_id": "982b70387ebb48b0876f0cc8db6462576b258feb",
      "new_mode": 33188,
      "new_path": "lib/dstat"
    },
    {
      "type": "modify",
      "old_id": "530f3b42d956886644fba49feed45a706086b236",
      "old_mode": 33188,
      "old_path": "lib/keystone",
      "new_id": "af607c344ba85677be6336370e0113e3172ed5e5",
      "new_mode": 33188,
      "new_path": "lib/keystone"
    },
    {
      "type": "modify",
      "old_id": "5b510e59300d7967f274a7ae90a553cbcd35d4f2",
      "old_mode": 33188,
      "old_path": "lib/swift",
      "new_id": "6c2af61551ca4afd6fb51bcae024c05b2bf3e82e",
      "new_mode": 33188,
      "new_path": "lib/swift"
    },
    {
      "type": "modify",
      "old_id": "c3b94d02f83af609129fa788046b4939b0a9457b",
      "old_mode": 33188,
      "old_path": "stackrc",
      "new_id": "61501b5696ce6f6a322903d9c7567fb5f371b574",
      "new_mode": 33188,
      "new_path": "stackrc"
    }
  ]
}
