)]}'
{
  "log": [
    {
      "commit": "93a94f503b058a1452cc8b1eef389cbec5975863",
      "tree": "d2545f40aeae139b9ccaf4b037586ac2287f9ac3",
      "parents": [
        "8fc227f63fd0820bd9c5725a6023529c742d2041"
      ],
      "author": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Fri Dec 14 06:39:59 2018 -0800"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Mon Dec 17 09:34:35 2018 +1100"
      },
      "message": "Enable direct-io on LVM loop devices\n\nThis enables direct-io on the loop devices that we create for LVM backing\nstores. The goal here is to reduce the buffer cache overhead involved with\nloop mounting a very large file on a filesystem, as well as potentially\nproviding a little more block-device-like behavior for things that expect\nthem. We are hoping this will address some of the very long LVM calls that\ncinder does, which randomly take a very long time, causing timeouts.\n\nThe loop direct-io support was added in kernel 4.4.0, which was xenial,\nbut the losetup binary does not have the required flag. Thus, this patch\nchecks the \"losetup -h\" output for the flag before deciding to enable it.\n\nChange-Id: Idc69cf3598d6ed6646c0145733c90ad0b1b60883\n"
    },
    {
      "commit": "8175df1912a5722c2e308dc27623063ac542f496",
      "tree": "aa8a68f354dd071dfa3f4794e301f5adf3244630",
      "parents": [
        "254116305c4a471ee857a9301e310bd2c406d937"
      ],
      "author": {
        "name": "Bogdan Katynski",
        "email": "bogdan.katynski@workday.com",
        "time": "Wed Jun 28 12:34:52 2017 +0100"
      },
      "committer": {
        "name": "Bogdan Katynski",
        "email": "bogdan.katynski@workday.com",
        "time": "Wed Jul 12 09:34:52 2017 +0000"
      },
      "message": "Remove VGs when cleaning LVM up in devstack\n\nThis patch adds removing of the volume group\nbefore removing the loopback device and\nthe backing file when performing LVM cleanup\nin unstack.sh\n\nWithout this commit:\n\nunstack.sh removes logical volumes, removes the\nloopback devices and deletes the backing file\nbut leaves a dangling volume group\n\n  $ ./stack.sh \u0026\u0026 ./unstack.sh\n  $ sudo vgs\n  VG                    #PV #LV #SN Attr   VSize  VFree\n  stack-volumes-default   1   0   0 wz--n- 10.01g 10.01g\n  $ sudo losetup -a\n  $ sudo vgremove stack-volumes-default\n  /dev/loop0: lseek 4096 failed: Invalid argument\n  vg_remove_mdas stack-volumes-default failed\n\nWith this commit:\n\nunstack.sh removes volume groups after removing\nall logical volumes but before removing\nthe loopback device and deleting the backing file\n\nPartial-Bug: 1441236\nChange-Id: Id9c06fa50f6cad28764f5a3396f559cac9999649"
    },
    {
      "commit": "8a834940b893b0535887d8cf08504dab4b9b710e",
      "tree": "43987f0f67ee6387f615ae45ffd46ed86c1bdc9b",
      "parents": [
        "6b8a115b95c7a637e01b8145aa961892ca3b9cd1"
      ],
      "author": {
        "name": "jeckxie",
        "email": "xiexiaozhe@inspur.com",
        "time": "Mon Dec 05 15:32:25 2016 +0800"
      },
      "committer": {
        "name": "jeckxie",
        "email": "xiexiaozhe@inspur.com",
        "time": "Mon Dec 05 15:32:25 2016 +0800"
      },
      "message": "Missing parameter in comment\n\nChange-Id: Iba55013b3be00974321ad58a276bb37ff2cac4da\n"
    },
    {
      "commit": "f5069f35a176109e3e28347ce7e0418ffc57c4cb",
      "tree": "5e060b9f49c4e9fc34b86b9dcb44601d57ab9262",
      "parents": [
        "62f29a98d70298372590957bcec7b9f7bc59d963"
      ],
      "author": {
        "name": "Jordan Pittier",
        "email": "jordan.pittier@scality.com",
        "time": "Tue Nov 08 12:10:12 2016 +0100"
      },
      "committer": {
        "name": "Jordan Pittier",
        "email": "jordan.pittier@scality.com",
        "time": "Thu Nov 17 17:05:49 2016 +0000"
      },
      "message": "lib/lvm: don\u0027t use $VOLUME_GROUP variable anymore\n\nWe should be using $VOLUME_GROUP_NAME instead since Icehouse.\n$VOLUME_GROUP_NAME has been introduced in\nI93b8ef32832269d730c76a6dc24ddb4f20c6d9df and $VOLUME_GROUP is nowadays\nonly use as a fallback to $VOLUME_GROUP_NAME.\n\nAs a code comment in lib/lvm says it we kept the $VOLUME_GROUP around as\n\"for compatibility with icehouse-generation Grenade\". Icehouse is long\ngone so now seems a good time to remove any usage of $VOLUME_GROUP.\n\nChange-Id: Id3051b5a196c45266c39fde4f08401aaacf0f6bd\n"
    },
    {
      "commit": "5237d16d69cf54487b72dd8d12862cb4339efcbc",
      "tree": "aa590c3ca5ba556a4cb642477e8bafd42db8fe7d",
      "parents": [
        "8755de3d750ebfb7ec5256d044488575c749492f"
      ],
      "author": {
        "name": "Eric Harney",
        "email": "eharney@redhat.com",
        "time": "Tue Aug 30 10:59:52 2016 -0400"
      },
      "committer": {
        "name": "Eric Harney",
        "email": "eharney@redhat.com",
        "time": "Tue Aug 30 11:01:30 2016 -0400"
      },
      "message": "LVM: Handle missing loop device at cleanup\n\nWhen the loop device is not present because something\nhas gone wrong, this will print an error:\n\"losetup: option requires an argument -- \u0027d\u0027\"\n\nJust skip the losetup -d in this case.\n\nChange-Id: Iedc439b1ae924e9a599f6522eb081b83d43190c7\n"
    },
    {
      "commit": "084efc7158f60530205e5ccad2947ec3948b7f26",
      "tree": "760e74ec18b6d6358dbb0649955a3795c722491b",
      "parents": [
        "6fff3cc03589cb0fdf02b4bedf1c35bcb000f28d"
      ],
      "author": {
        "name": "Waldemar Znoinski",
        "email": "waldemar.znoinski@intel.com",
        "time": "Wed Mar 09 12:18:51 2016 +0000"
      },
      "committer": {
        "name": "Waldemar Znoinski",
        "email": "waldemar.znoinski@intel.com",
        "time": "Wed Mar 09 20:21:53 2016 +0000"
      },
      "message": "run tgt-admin --delete only if input not empty\n\nThis change provides better handling of tgtadm --op show\noutput as input of tgt-admin --delete command. In situation\nwhere no output of the first command is present no tgt-admin\ncommand is run.\n\nChange-Id: Ief5e1d50dd679f4d47cffef29ff07e54cc37f80a\nCloses-bug: 1554997\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": "ada886dd43ccc07f48d3a82d8d3d840fe5096c03",
      "tree": "93d62f1c82edc08d813b7f9f7eb9270e7024e055",
      "parents": [
        "433a9b10ddd6fa67d7459c4943a92ce4f488cebc"
      ],
      "author": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 14:06:26 2015 +1100"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Wed Oct 07 17:03:32 2015 +1100"
      },
      "message": "Don\u0027t mix declaration and set of locals\n\nIa0957b47187c3dcadd46154b17022c4213781112 proposes to have bashate\nfind instances of setting a local value.  The issue is that \"local\"\nalways returns 0, thus hiding any failure in the commands running to\nset the variable.\n\nThis is an automated replacement of such instances\n\nDepends-On: I676c805e8f0401f75cc5367eee83b3d880cdef81\nChange-Id: I9c8912a8fd596535589b207d7fc553b9d951d3fe\n"
    },
    {
      "commit": "9ee1ef6cb8e06864e2341f4121372028d6d59c64",
      "tree": "99cc1b3b9775215dc4b481cb6de12ade76c2a69c",
      "parents": [
        "35814a7b6e4248f3c890019a0eddee4b4b76c564"
      ],
      "author": {
        "name": "Shin Sato",
        "email": "s-sato@ts.jp.nec.com",
        "time": "Thu May 28 13:56:58 2015 +0900"
      },
      "committer": {
        "name": "Shin Sato",
        "email": "s-sato@ts.jp.nec.com",
        "time": "Thu May 28 13:56:58 2015 +0900"
      },
      "message": "Fix typo: _create_volume_group \u003d\u003e _create_lvm_volume_group\n\nChange-Id: Ifb648c9eb4a57ac0fc97afb842e83286789801dd\n"
    },
    {
      "commit": "6cdb2e0f1a2c2429587f1e9187344cb26eb31812",
      "tree": "433984396700ffadbf99b1a169e493180eaae7bb",
      "parents": [
        "cd7655cbfcc119e5dafe308ce31e54d3e28b3b63"
      ],
      "author": {
        "name": "Dan Smith",
        "email": "dansmith@redhat.com",
        "time": "Thu Apr 23 09:12:59 2015 -0700"
      },
      "committer": {
        "name": "Ian Wienand",
        "email": "iwienand@redhat.com",
        "time": "Thu Apr 23 22:12:15 2015 +0000"
      },
      "message": "Remove the lvm.conf filter during cleanup\n\nThis avoids us leaving the filter in the global lvm config. Without cleaning\nthis up, we can hit some failures to run stack.sh because devices are excluded\nthat we need to be able to see. This resets it to what it was before when\nwe do a cleanup.\n\nAlso, do this before we add the line, so we don\u0027t add multiple lines on\nsuccessive runs.\n\nCloses-bug: #1437998\nChange-Id: Idbf8a06b723f79ef16a7c175ee77a8c25f813244\n"
    },
    {
      "commit": "43479db9105db75d7762e9cfbc950841725fa644",
      "tree": "bd073e14efd512f063cd79466a03dee5b2611ae7",
      "parents": [
        "bba4742e8cbdc577121bf1010f5fe307c958cd15",
        "dc97cb71e85fc807d2cce6f054c785922d322eb9"
      ],
      "author": {
        "name": "Jenkins",
        "email": "jenkins@review.openstack.org",
        "time": "Sun Mar 29 23:23:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "review@openstack.org",
        "time": "Sun Mar 29 23:23:51 2015 +0000"
      },
      "message": "Merge \"Mostly docs cleanups\""
    },
    {
      "commit": "dc97cb71e85fc807d2cce6f054c785922d322eb9",
      "tree": "86affcfbc7054c209c2ab0a4c3f7955d5e1bf16f",
      "parents": [
        "9720239618189c13734aa32aabee9252707f2db9"
      ],
      "author": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Mar 28 08:20:50 2015 -0500"
      },
      "committer": {
        "name": "Dean Troyer",
        "email": "dtroyer@gmail.com",
        "time": "Sat Mar 28 14:35:12 2015 -0500"
      },
      "message": "Mostly docs cleanups\n\nFix documentation build errors and RST formatting\n\nChange-Id: Id93153400c5b069dd9d772381558c7085f64c207\n"
    },
    {
      "commit": "c70605d1013296d0127ad38d8c53a69ed982e647",
      "tree": "c9efeede5347f24ea19ea7faeaad68d34da2136b",
      "parents": [
        "c9b24ffdf58f238c0374bfc1a54d2b27eab69e7b"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Mon Jan 26 15:44:47 2015 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Thu Mar 26 20:41:18 2015 +0100"
      },
      "message": "Add lioadm cinder iscsi helper support\n\nThe Linux-IO is a modern way of handling targets.\nPer the IRC discussions lioadm as default\nseams like a better default for everyone, for now it will be\noptional, but the tgtadm admin support expected to be removed when\nlioadm works well with all CI (including third party).\n\nChange-Id: Ia54c59914c1d3ff2ef5f00ecf819426bc448d0a9\n"
    },
    {
      "commit": "4bf861c76c220a98a3b3165eea5448411d000f3a",
      "tree": "3456436ad5a89e384fb206c36557ff88c6279907",
      "parents": [
        "5e159edab375ed950cc5c91a6c445bbc5541b3c1"
      ],
      "author": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Tue Mar 17 21:07:39 2015 -0600"
      },
      "committer": {
        "name": "John Griffith",
        "email": "john.griffith@solidfire.com",
        "time": "Wed Mar 18 10:29:29 2015 -0600"
      },
      "message": "Create global_filter to avoid scan of missing devs\n\nA while back I added an lvm.conf file with a device filter setting\nto try and clean up the LVM hangs in the gate:\n  (commit 0b9e76f280208b5b5ad54bb6fbc4133e63037286)\n\nIt turns out this wasn\u0027t the real problem, the real problem\nis that on an LVS/VGS command LVM  will attempt to open and read\nall potential block devices in /dev to see if they have LVM data\non them.  I initially thought the local filter would keep that\nfrom happening, as it turns out the local filter only limits what\u0027s\nreturned AFTER the actual scan process.  In order to keep the scan\nfrom happening at all, either a global_filter needs to be used or\nlvmetad needs to be running and enabled.\n\nThere are situations in gate tests where /dev/sdX devices are created and\ndeleted and the result is that we hit situations where LVM tries\nto open up devices to check them even if they\u0027ve been removed.  The\nresult is we have a blocking open call from LVM that takes approx\n60 seconds to time out and fail.\n\nUbuntu won\u0027t have a version of lvmetad until Vivid, so for now\nthat just leaves the global_filter as an option.\n\nThis patch adds the filter routine to the end of stack.sh.  We don\u0027t\nwant to put the routine in lib/cinder_backend/lvm like we had it because\nnow we have to set the global filter for all LVM commands on the system.\nSo we put this as one of the last steps in stack.sh and run it if Cinder\nis enabled.  This way we can query PV\u0027s on the system regardless of what\nother services may be running and using LVM and make sure that all of\ntheir devices are added to the filter as well.\n\nAlso, make sure we only set this for Ubuntu as Fedora/RHEL variants\nutilize lvmetad.\n\nThis patch also removes the old change that set the local filter.\n\nDocImpact\nShould add this to recommended config for Cinder on systems\nthat don\u0027t have lvmetad, and recommend lvmetad for those that do.\n\nChange-Id: I5d5c48e188cbb9b4208096736807f082bce524e8\nCloses-Bug: #1373513\n"
    },
    {
      "commit": "380d92cc7a0601d89e40d311172e7e3ee4a58640",
      "tree": "d493146b24c6fd26815871ea4a4527fea0b27029",
      "parents": [
        "2e9d32baf274fc0bd7edc5fd3b9df3f3fa01e2bd"
      ],
      "author": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Wed Feb 18 16:22:06 2015 +0100"
      },
      "committer": {
        "name": "Attila Fazekas",
        "email": "afazekas@redhat.com",
        "time": "Thu Feb 19 07:55:26 2015 +0100"
      },
      "message": "Ensure lvm2-lvmetad service running on Fedora\n\nWhen the lvm package gets installed the meta service does\nnot gets started automatically, but it becomes enabled so it would be\nrunning on the next reboot.\n\nThe lvm commands are configured to use this service.\nIn the past this issue just causes warnings in the cinder log,\nbut now it can lead to a real issue.\n\nIt is better to ensure it is really running,\nbecause it speeds up the lvm related commands.\n\nChange-Id: I17fe2c3bcf77a6505ed2b6c824c5b20807beb725\n"
    },
    {
      "commit": "4c20607e0a867fcd877466e1eccab305ff62a03a",
      "tree": "adf107a532f7431470a9c8229fccd8f100f73b84",
      "parents": [
        "bae736e1e0714fc02de1c93bfe5f04c6be7f0d2f"
      ],
      "author": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Mon Feb 16 21:56:29 2015 +0000"
      },
      "committer": {
        "name": "Chris Dent",
        "email": "chdent@redhat.com",
        "time": "Mon Feb 16 21:56:29 2015 +0000"
      },
      "message": "Don\u0027t prepend $DATA_DIR to volume path that already has it\n\nOtherwise the test is testing the wrong file.\n\nChange-Id: Ia7dcda8d4f3a1fe87e74f4605a7010b66c38fa14\n"
    },
    {
      "commit": "c070a3dbb5c52fb9099bd6cec477ba3d0a75760a",
      "tree": "fb4379b20d08bd5651416b6a5e4994e27c53e673",
      "parents": [
        "4764cffd5a97690ca3ca91501d30cc5c8c93ba20"
      ],
      "author": {
        "name": "Maru Newby",
        "email": "marun@redhat.com",
        "time": "Tue Jan 27 17:44:44 2015 +0000"
      },
      "committer": {
        "name": "Maru Newby",
        "email": "marun@redhat.com",
        "time": "Tue Jan 27 19:09:02 2015 +0000"
      },
      "message": "Init default lvm volume group only if required\n\nA recent patch [1] added support for lvm ephemeral storage for nova,\nbut at the cost of initializing a default lvm volume group even if it\nwas not required.  This change ensures that init of the default volume\ngroup is only performed when nova and/or cinder are configured to use\nlvm.\n\n1: https://review.openstack.org/#/c/132333\n\nChange-Id: I7634ca0ed0ffe1b13464e4d66744918f85149f2e\nCloses-Bug: #1414820\n"
    },
    {
      "commit": "d470867f08a2be3c30c66d9519a95eb5801cfbc9",
      "tree": "41afbec58aab34f7ecf6f3c1e84f0acd4edb7ef5",
      "parents": [
        "62002dd88b7909ac249face4243e1aae03745a01"
      ],
      "author": {
        "name": "Daniel Genin",
        "email": "Daniel.Genin@jhuapl.edu",
        "time": "Fri Oct 31 15:01:29 2014 -0400"
      },
      "committer": {
        "name": "Daniel Genin",
        "email": "Daniel.Genin@jhuapl.edu",
        "time": "Mon Jan 19 11:51:16 2015 -0500"
      },
      "message": "Adds support for LVM ephemeral storage in Nova\n\nDevStack currently lacks support for LVM ephemeral storage in Nova.\nThis support is important for testing of Nova\u0027s LVM backend. The\nproposed change adds a default volume group, to be shared by Cinder\nand Nova. It also adds a configuration option NOVA_BACKEND, which\nmust be LVM if it is set, that determines whether Nova should be\nconfigured to use LVM ephemeral storage.\n\nChange-Id: I4eb9afff3536fbcd563939f2d325efbb845081bb\n"
    }
  ]
}
