)]}'
{
  "log": [
    {
      "commit": "71240ef6ee4ff2c553606ff5c88c80196e2bc136",
      "tree": "4664728c51d66ad46568a42a61ae69f1d1b5aa8c",
      "parents": [
        "2a274bac31bbf7ef191d7b92a21fb0b579f4ceab",
        "80691a3494b5b2e4132e409285f940921a6c0628"
      ],
      "author": {
        "name": "mcp-jenkins",
        "email": "mcp-jenkins@mirantis.com",
        "time": "Tue Mar 26 13:10:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "mail@domain.com",
        "time": "Tue Mar 26 13:10:06 2019 +0000"
      },
      "message": "Merge \"Adding retries for raw_session adapter\" into release/2019.2.0"
    },
    {
      "commit": "2a274bac31bbf7ef191d7b92a21fb0b579f4ceab",
      "tree": "8e0d2527d4621b5bedf1fe23ac8972f354260534",
      "parents": [
        "70341ebe10392eaaacbfe9f54f0c257d2333ab6f"
      ],
      "author": {
        "name": "Oleksandr Shyshko",
        "email": "oshyshko@mirantis.com",
        "time": "Wed Feb 27 15:02:30 2019 +0000"
      },
      "committer": {
        "name": "Tatyana Leontovich",
        "email": "tleontovich@mirantis.com",
        "time": "Mon Mar 25 19:44:35 2019 +0000"
      },
      "message": "Added opportunity to set extra user options.\n\nChange-Id: I191eca8806f92c84896e776ddc8b9263f00947ae\nRelated-PROD: PROD-28027\n(cherry picked from commit a0b79e20af97a54a24e64724d3a3feb81ef28791)\n"
    },
    {
      "commit": "80691a3494b5b2e4132e409285f940921a6c0628",
      "tree": "775d2f5ec4b579ea9f049dca2b39c28040cbdace",
      "parents": [
        "542809eb70039eb71b14bff4b98a200d3589eef1"
      ],
      "author": {
        "name": "Oleh Hryhorov",
        "email": "ohryhorov@mirantis.com",
        "time": "Tue Feb 26 13:45:12 2019 +0000"
      },
      "committer": {
        "name": "Oleh Hryhorov",
        "email": "ohryhorov@mirantis.com",
        "time": "Thu Feb 28 14:00:16 2019 +0000"
      },
      "message": "Adding retries for raw_session adapter\n\nWhen race conditoin occures if keystone is brought up but HAProxy\ndoesn\u0027t detect that it is alive then DiscoveryFailure expection raises\nto fix the issue connection retries have been implemented.\n\nChange-Id: Ie4355a44be5501a8b404252a5ab304b5528d81ed\nRelated-PROD: PROD-27890 (PROD:27890)\n"
    },
    {
      "commit": "3d8aaa0b40af1b983c0465b49e6cc9993bf30fcb",
      "tree": "75cb692e34e7335d4fdf134c55d25e20ed20ca29",
      "parents": [
        "ad1199d93be54e80830681dddbccc40682cafd86"
      ],
      "author": {
        "name": "Vasyl Saienko",
        "email": "vsaienko@mirantis.com",
        "time": "Fri Jan 11 15:18:08 2019 +0000"
      },
      "committer": {
        "name": "Vasyl Saienko",
        "email": "vsaienko@mirantis.com",
        "time": "Mon Jan 14 08:40:01 2019 +0000"
      },
      "message": "Fix resetting user password in keystoneng\n\nChange-Id: I187b4bff6ea896f3cd7610372c5e1ed9d8dbad8d\nRelated-Prod: PROD-26149\n(cherry picked from commit 50719e955b43601a5d913913786e82bd9e119ac6)\n"
    },
    {
      "commit": "e03e2c713d69557229544505516f0907951aaac0",
      "tree": "31587a89cb5728179e9b86be0c3f9f495f247dfc",
      "parents": [
        "fe9fff9a4215be60c2aa70518c5c754da5457602"
      ],
      "author": {
        "name": "Oleksiy Petrenko",
        "email": "opetrenko@mirantis.com",
        "time": "Fri Aug 10 13:24:32 2018 +0300"
      },
      "committer": {
        "name": "sgarbuz",
        "email": "sgarbuz@mirantis.com",
        "time": "Tue Aug 21 09:11:15 2018 +0000"
      },
      "message": "Add role inference calls, domains\n\nAlso rework get_by_name_or_uuid method to work with multiple keys\nand add get_by_name_or_uuid decorator for role assign, unassgin and check.\n\nChange-Id: I808ce0c1aa1a7231875256ae6f22e986d78f8f00\nRelated-Issue: PROD-21388\n"
    },
    {
      "commit": "4eda4f2705fb9843eaa38216e4e7ce7b779b49f2",
      "tree": "aaa45dbad5181dbe63467c817b14627981ece6c0",
      "parents": [
        "96d0fad98ab2094a351d314f3efc8657829f7974"
      ],
      "author": {
        "name": "Vasyl Saienko",
        "email": "vsaienko@mirantis.com",
        "time": "Thu Apr 26 19:30:39 2018 +0300"
      },
      "committer": {
        "name": "Vasyl Saienko",
        "email": "vsaienko@mirantis.com",
        "time": "Thu May 03 13:20:39 2018 +0000"
      },
      "message": "Introduce separate module,state to work with v3 only\n\nThis patch introduce new keystonev3 module and state that uses\nos_client_config library for authenticaion and raw client to send\nrequests directly to API.\n\nSince v3 resource structure/resource relation are completely different\nwe introduce new pillar keystone:client:resources:v3 which will contain\nall resources we manage via v3 client.\n\nThe module,state implements basic functionality to manage:\n  * users\n  * projects\n  * services\n  * endpoints\n  * roles\n\nOther resources will be added in separate patches when needed.\n\nBootstrap of keystone is done via bootstrap script in server.sls in\nQueens as admin token is removed.\n\nRelated-Prod: PROD-19148\n\nChange-Id: I10a7cf720955437e3757a1c9699e4a60e1327ba3\n"
    },
    {
      "commit": "5fe8041e1b29c067fb38d8b98f6f7f5ef0b239c8",
      "tree": "d4e2d86a350beecee76900b5d9c03c206590dd01",
      "parents": [
        "36b6d7007103fabaa0c3f3532effc3ec21124aee"
      ],
      "author": {
        "name": "Benjamin Drung",
        "email": "bdrung@debian.org",
        "time": "Wed Feb 14 23:55:54 2018 +0100"
      },
      "committer": {
        "name": "Benjamin Drung",
        "email": "bdrung@debian.org",
        "time": "Thu Feb 15 00:05:46 2018 +0100"
      },
      "message": "Support Python 3\n\njson.dumps() and yaml.safe_dump() return a str object on Python 2 and Python 3.\nTherefore the unicode conversion is only needed for Python 2.\n\nBug-Debian: https://bugs.debian.org/889929\n"
    },
    {
      "commit": "5b1e532571d50048e790dca0a3740ababbaa56ae",
      "tree": "6edc069dc5f827b2043f872866b5f1477daca11a",
      "parents": [
        "07e0643017075b6ef507d07057fe0a5333bde00f"
      ],
      "author": {
        "name": "Oleg Iurchenko",
        "email": "oiurchenko@mirantis.com",
        "time": "Fri Oct 20 00:29:20 2017 +0300"
      },
      "committer": {
        "name": "Oleg Iurchenko",
        "email": "oiurchenko@mirantis.com",
        "time": "Thu Feb 01 12:17:27 2018 +0200"
      },
      "message": "Add keystoneng module\n\nThis patch adds new keystoneng module\nCurrent Salt 2016 keystone module does not support keystone v3 api.\nSalt 2017 keystone module does not support version discovery for\nkeystone api.\nThe keystoneng module is based on upstream Salt 2017 keystone module and\nhas version discovery feature.\n\nThe same changes were merged to Salt upsream development branch.\nKeystoneng should be switched back to native keystone module when\nSalt will support version discovery for keystone API.\n\nPatch Set 25: keystoneng.py is original Salt keystone.py from\n              https://raw.githubusercontent.com/saltstack/salt/2017.7.3/salt/modules/keystone.py\nPatch Set 26: keystoneng.py with version discovery and other enhancements.\n\nChange-Id: Id8af7bb9f970786fec9586c327da8f8e803bd829\nRelated-PROD: PROD-15801\n"
    },
    {
      "commit": "073067aa235c19a7036f4dda945bfd493d9d366e",
      "tree": "c3fbb542e7893ea27f639fbfbfce1f0bb2715983",
      "parents": [
        "e124c3b316223fad6c0d54abf0a474f5337cfd2d"
      ],
      "author": {
        "name": "Petr Michalec",
        "email": "epcim@apealive.net",
        "time": "Fri Oct 27 15:37:46 2017 +0200"
      },
      "committer": {
        "name": "Petr Michalec",
        "email": "epcim@apealive.net",
        "time": "Fri Oct 27 16:05:49 2017 +0200"
      },
      "message": "Fix ordered yaml load\n\nChange-Id: I0db23722017f31839d5449af64185ec4b6a35c61\n"
    },
    {
      "commit": "e124c3b316223fad6c0d54abf0a474f5337cfd2d",
      "tree": "648f2f4d077a0bc2d5ea0f8f2896d7e416a026e6",
      "parents": [
        "ffb15612f7f8032f68fb3085e2375c67dfa98c44"
      ],
      "author": {
        "name": "Alexey Stupnikov",
        "email": "astupnikov@mirantis.com",
        "time": "Thu Oct 19 19:58:09 2017 +0300"
      },
      "committer": {
        "name": "Alexey Stupnikov",
        "email": "astupnikov@mirantis.com",
        "time": "Thu Oct 19 20:07:23 2017 +0300"
      },
      "message": "Use OrderedDict to process policy.json rules\n\nAll openstack projects are currently using keystone_policy module\nto add, update or delete rules from policy.json file. This module\nbasically gets existing rules from policy.json file and changes\nthem.\n\nkeystone_policy.rule_list currently imports rules as simple\ndictionary. Python dictionaries are unordered and order matters\nfor policy.json file. As a result, it is possible to break the\nservices with 100% legitimate operation.\n\nThis patch switches to ordered dictionaries and fixes the issue\nreported in PROD-13979.\n\nChange-Id: Icdf94e76eff394b72041aa24b1716ae5c9afd463\n"
    },
    {
      "commit": "4fe0d083b2bfd870833b51b001692f4075a07dab",
      "tree": "7c07fe59e509200c857e136a79ace24361b4040c",
      "parents": [
        "940e025c93c396c0ab0ad48895fe5075e87505af"
      ],
      "author": {
        "name": "Kirill Bespalov",
        "email": "kbespalov@mirantis.com",
        "time": "Thu Jun 29 19:02:13 2017 +0300"
      },
      "committer": {
        "name": "Marek Celoud",
        "email": "mceloud@mirantis.com",
        "time": "Tue Jul 18 11:09:17 2017 +0000"
      },
      "message": "[ keystone_policy.py ] Add yaml support\n\nWhat:\n\nAllow to read/write rules in json/yaml formats\n\nWhy:\n\n1) Since Newton release oslo.policy supports both of the formats:\nyaml and json.\n\n2) oslopolicy-policy-generator produces an output only in yaml format\nsince the release, so yaml format expected as default.\n\n3) Nova newton+ package has no any default policy.json file.\nIt has empty policy.yaml file, so we need to have ability to\nmanage the file from the module.\n\nChange-Id: I39239ba5eebee39483607785698806c040937b4b\n"
    },
    {
      "commit": "b1ebaca0af2b06ec81a4f84be2ec3765f9868f29",
      "tree": "b64d5d0cf5b93e3bbfae221928dfeed83b779a72",
      "parents": [
        "cf7a8c8842ac101983f36234d70865e7ed32e445"
      ],
      "author": {
        "name": "Adam Tengler",
        "email": "adam.tengler@tcpcloud.eu",
        "time": "Thu May 04 21:06:08 2017 +0000"
      },
      "committer": {
        "name": "Adam Tengler",
        "email": "adam.tengler@tcpcloud.eu",
        "time": "Tue May 09 12:19:10 2017 +0000"
      },
      "message": "Keystone policy module, states and grain\n"
    }
  ]
}
