)]}'
{
  "log": [
    {
      "commit": "2a242519f71e86416e78541826cac2b54fcd04a5",
      "tree": "9d00e3e5e7c5e97a85ec22cfe3385f217ca70ce5",
      "parents": [
        "251b870e859e1a03b57c8fe24c7692a5e2a10fde"
      ],
      "author": {
        "name": "Sean M. Collins",
        "email": "sean@coreitpro.com",
        "time": "Tue May 03 09:03:09 2016 -0400"
      },
      "committer": {
        "name": "Sean M. Collins",
        "email": "sean@coreitpro.com",
        "time": "Mon May 09 14:26:08 2016 -0400"
      },
      "message": "Begin new lib/neutron\n\nBackground for this work can be read on the mailing list:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2016-May/094063.html\n\nUsage of the new Neutron is by setting the following in\nENABLED_SERVICES:\n\n* neutron-api\n* neutron-l3\n* neutron-agent\n* neutron-dhcp\n* neutron-metadata-agent\n\nFor now, the new neutron library supports just the ML2 plugin, with the\nOpen vSwitch and Linux Bridge agents supported. All other Neutron\nplugins should be creating their own DevStack plugin if they wish for\nDevStack to support them. Many of them already do.\n\nOther notable changes compared to neutron-legacy:\n\n* Rely on the Neutron defaults, and force Neutron to make\n  sane defaults instead of all kinds of knobs in DevStack.\n\n* Default to rootwrap daemon support\n\n* Use the security group driver by default\n\n* interface_driver can now use NEUTRON_AGENT (linuxbridge, openvswitch), since\n  they are entrypoints in neutron\u0027s setup.cfg\n\n* Use NEUTRON_AGENT variable to determine which agent to run\n  Works with NEUTRON_AGENT set to either \"linuxbridge\" or \"openvswitch\"\n  Default is openvswitch for the time being.\n\n* Set ML2 configuration for VXLAN support\n\n* Remove Xen hypervisor stuff - it should be a plugin\n\n* Move L3 crud into separate service file:\n\n  There\u0027s a lot of L3 configuration that was in the main neutron file, but\n  a lot of it is self contained and can be moved into its own file.\n\n  The new l3 service file will contain all the previous L3 plumbing and\n  configuration that the OpenStack Gate expects, while also eventually\n  moving the whole l3 network creation step into a single hook that can be\n  overridden by plugins.\n\n* Introduce a check for a function \"neutron_plugin_create_initial_networks\" which\n  will become the mechanism through which different topologies, and\n  networking plugins can create and wire the initial networks that are\n  created during a stack.sh run.\n\nThe new lib/neutron is considered experimental, and followup patches\nwill build upon this one. Existing users of lib/neutron-legacy should\nremain unharmed.\n\nCo-Authored-By: Hirofumi Ichihara \u003cichihara.hirofumi@lab.ntt.co.jp\u003e\nCo-Authored-By: Dean Troyer \u003cdtroyer@gmail.com\u003e\nChange-Id: I31b6362c6d9992f425f2dedbbeff2568390a93da\n"
    },
    {
      "commit": "523f48803609b35350b624244fa73b1030c1d5fa",
      "tree": "17f99ab223f42eec58523fa89a49f243efba754b",
      "parents": [
        "307730acd9d271bc4c3d44f2dfed0eab67e1657d"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Tue Oct 13 11:03:03 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Nov 27 15:36:04 2015 +1100"
      },
      "message": "Namespace XTRACE commands\n\nI noticed this when debugging some grenade issues failures.\n\nAn include of grenade/functions stores the current value of XTRACE\n(on) and disables xtrace for the rest of the import.\n\nWe then include devstack\u0027s \"functions\" library, which now overwrites\nthe stored value of XTRACE the current state; i.e. disabled.\n\nWhen it finishes it restores the prior state (disabled), and then\ngrenade restores the same value of XTRACE (disabled).\n\nThe result is that xtrace is incorrectly disabled until the next time\nit just happens to be turned on.\n\nThe solution is to name-space the store of the current-value of xtrace\nso when we finish sourcing a file, we always restore the tracing value\nto what it was when we entered.\n\nSome files had already discovered this.  In general there is\ninconsistency around the setting of the variable, and a lot of obvious\ncopy-paste.  This brings consistency across all files by using\n_XTRACE_* prefixes for the sotre/restore of tracing values.\n\nChange-Id: Iba7739eada5711d9c269cb4127fa712e9f961695\n"
    },
    {
      "commit": "e263c82e48a431e502bd6baceb6dfcfdc1750cbb",
      "tree": "5ca592e668dedb4debc6c7170f3abf37cc4bc0c6",
      "parents": [
        "2f8e08b5728f4272b415b1c0aab8ff62eae29b06"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Fri Dec 05 14:25:28 2014 -0500"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sean@dague.net",
        "time": "Wed Dec 10 11:28:05 2014 -0500"
      },
      "message": "add shebang lines to all lib files\n\nWith gerrit 2.8, and the new change screen, this will trigger syntax\nhighlighting in gerrit. Thus making reviewing code a lot nicer.\n\nChange-Id: Id238748417ffab53e02d59413dba66f61e724383\n"
    },
    {
      "commit": "2f27a0ed3c609bfcd6344a55c121e56d5569afc9",
      "tree": "abe0c02c1d2fd9d57f6b786ff8105896969d0e3c",
      "parents": [
        "58deafcd63ae996e0973c864e249c4a3cb82a74f"
      ],
      "author": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Tue Sep 09 13:46:02 2014 +0100"
      },
      "committer": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Thu Sep 11 18:59:39 2014 +0100"
      },
      "message": "Replace screen_it() with run_process() throughout\n\nrun_process will use screen if USE_SCREEN\u003dTrue (the default),\notherwise it will simply start the requested service. Therefore\nwherever screen_it used, run_process can be instead.\n\nWhere stop_screen was found it has been replaced with stop_process.\n\nA tail_log function has been added which will tail a logfile in a\nscreen if USE_SCREEN is True.\n\nlib/template has been updated to reflect the use of the new\nfunctions.\n\nWhen using sg the quoting in run_process gets very complicated.\nTo get around this run_process and the functions it calls accepts\nan optional third argument. If set it is a group to be used with sg.\n\nChange-Id: Ia3843818014f7c6c7526ef3aa9676bbddb8a85ca\n"
    },
    {
      "commit": "aee18c749b0e3a1a3a6907a33db76ae83b8d41d9",
      "tree": "01a8ab5abb9867986f3e848918abd9e749b691cd",
      "parents": [
        "0ed4af02da0bd4a0f757dd8c2156913e6c7a724c"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 21 15:35:08 2014 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Fri Feb 28 07:59:03 2014 +1100"
      },
      "message": "Enforce function declaration format in bash8\n\nCheck that function calls look like ^function foo {$ in bash8, and fix\nall existing failures of that check.  Add a note to HACKING.rst\n\nChange-Id: Ic19eecb39e0b20273d1bcd551a42fe400d54e938\n"
    },
    {
      "commit": "e4fa72132228688d2fe74dd974fe04b0fe4c3d6b",
      "tree": "b92c3050cd93c4d3d87142708eb30f77b58e2628",
      "parents": [
        "f583a04d739a189da6f3780f83e2ddc61bfe9e22"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Jan 15 15:04:49 2014 -0600"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Fri Feb 07 10:06:21 2014 -0600"
      },
      "message": "Begin is_service_enabled() cleanup\n\nThis converts the special cases in the is_service_enabled() function to call\nindividual functions declared by the projects.  This allows projects that\nare not in the DevStack repo and called via the extras.d plugin to handle\nan equivalent service alias.\n\n* Ceilometer\n* Cinder\n* Glance\n* Neutron\n* Nova\n* Swift\n\nTODO: remove the tests from is_service_enabled() after a transition period\n\nPatch Set 2: Rebased\n\nChange-Id: Ic78be433f93a9dd5f46be548bdbd4c984e0da6e7\n"
    },
    {
      "commit": "6a5aa7c6a20435bbd276a0f1823396b52a8f0daf",
      "tree": "d5137f132a359469f1225d61850466feb4658297",
      "parents": [
        "cb961597cc30f9d8ece17529f09a8291454827e3"
      ],
      "author": {
        "name": "Adam Spiers",
        "email": "aspiers@suse.com",
        "time": "Thu Oct 24 11:27:02 2013 +0100"
      },
      "committer": {
        "name": "Adam Spiers",
        "email": "aspiers@suse.com",
        "time": "Thu Oct 24 17:38:19 2013 +0100"
      },
      "message": "Fix some Markdown formatting issues\n\nAddress miscellaneous issues with Markdown formatting in comments which\nare consumed by shocco when generating the online documentation.\n\nChange-Id: I953075cdbddbf1f119c6c7e35f039e2e54b79078\n"
    },
    {
      "commit": "584d90ec56e18cbb9c0f15fe6af35504c02ea4bd",
      "tree": "6d2027aed2ab0e2e44be06ce906c7083493aab3d",
      "parents": [
        "a173376ea1b838d420384c2946b7e66859b6335b"
      ],
      "author": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Fri Mar 29 14:34:53 2013 -0400"
      },
      "committer": {
        "name": "Sean Dague",
        "email": "sdague@linux.vnet.ibm.com",
        "time": "Fri Mar 29 14:36:49 2013 -0400"
      },
      "message": "add emacs shell-script tagging\n\nfor files that don\u0027t start with a #! or end in .sh, the added tags\nare nice for emacs users to automatically switch to the right mode.\n\nChange-Id: If4b93e106191bc744ccad8420cef20e751cdf902\n"
    },
    {
      "commit": "7903b795dd4be552e4d21c879958fadc82472259",
      "tree": "cca4cdbfd59f2ad0044f0c05d5a3e910740551ee",
      "parents": [
        "be6f5328674db27b1eb2ed6137ab9d72355ec7cf"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Thu Sep 13 17:16:12 2012 -0500"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Mon Sep 17 19:38:23 2012 +0000"
      },
      "message": "Add non-verbose output mode\n\nSet VERBOSE\u003dFalse to turn off the noise of stack.sh output.  All\noutput still is written to the logfile if LOGFILE is set.\n\nRebased\n\nChange-Id: I316bc4d68c997ec907a48e720e2f7778428d935b\n"
    },
    {
      "commit": "1de40cf69110c1ca58844c6731dd820488594fad",
      "tree": "30777c9afc5ddeac416aebbde2c9bb18c4ead961",
      "parents": [
        "3bae7c2c61ba69bb0cac05560acace943c9ebc8e"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Sep 04 14:19:24 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Tue Sep 04 14:19:24 2012 -0500"
      },
      "message": "Fix start_XXXX function header\n\nChange-Id: I14e1f80d327e723408993a955d9fce9501ba8ef5\n"
    },
    {
      "commit": "05f23656d016f99c56b1a9c193c5715d6d614529",
      "tree": "aeed72bc6717c71ead3777459ba8123bf7999ab3",
      "parents": [
        "5090fffa8b2495bab479e1749bfeb358575a1a5a"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Aug 29 15:20:21 2012 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Wed Aug 29 17:28:14 2012 -0500"
      },
      "message": "Add lib/template\n\nAdd a template for the lib/* sub-scripts and a description\nto HACKING.\n\nChange-Id: Ia490de8e565982c517525e09d8941a847ba530aa\n"
    }
  ]
}
