)]}'
{"id":"openstack%2Fkeystoneauth~676648","triplet_id":"openstack%2Fkeystoneauth~master~Iffb671fefae23926b1f09017d9db438341eae238","project":"openstack/keystoneauth","branch":"master","topic":"bug/1840235","hashtags":[],"change_id":"Iffb671fefae23926b1f09017d9db438341eae238","subject":"Allow initializing session with connection retries","status":"MERGED","created":"2019-08-15 08:43:02.000000000","updated":"2019-10-09 20:24:33.000000000","submitted":"2019-10-09 20:23:20.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":29,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"676648-1570652601074-70f2cce9","meta_rev_id":"df7717979a14b8b9d1218cc282d5d073de41137d","_number":676648,"virtual_id_number":676648,"owner":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2019-10-09 20:23:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},{"value":0,"date":"2019-09-18 16:00:46.000000000","_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},{"value":0,"date":"2019-09-05 20:11:28.000000000","_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},{"value":0,"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},{"value":0,"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"value":0,"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":27427,"name":"David Peacock","email":"dpeacock@redhat.com","username":"davidjpeacock"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"recommended":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},{"value":0,"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},{"value":0,"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},{"value":1,"date":"2019-09-18 15:48:31.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},{"value":0,"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"value":2,"date":"2019-10-09 18:16:49.000000000","_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},{"value":2,"date":"2019-10-05 07:59:55.000000000","_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":27427,"name":"David Peacock","email":"dpeacock@redhat.com","username":"davidjpeacock"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},{"value":0,"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},{"value":0,"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},{"value":0,"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},{"value":0,"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"value":1,"date":"2019-10-09 18:16:49.000000000","_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":27427,"name":"David Peacock","email":"dpeacock@redhat.com","username":"davidjpeacock"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":27427,"name":"David Peacock","email":"dpeacock@redhat.com","username":"davidjpeacock"},{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-08-16 15:24:09.000000000","updated_by":{"_account_id":27427,"name":"David Peacock","email":"dpeacock@redhat.com","username":"davidjpeacock"},"reviewer":{"_account_id":27427,"name":"David Peacock","email":"dpeacock@redhat.com","username":"davidjpeacock"},"state":"REVIEWER"},{"updated":"2019-08-21 13:11:29.000000000","updated_by":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"reviewer":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"state":"REVIEWER"},{"updated":"2019-08-23 15:07:14.000000000","updated_by":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"reviewer":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"state":"REVIEWER"},{"updated":"2019-09-05 20:11:28.000000000","updated_by":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"reviewer":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"state":"REVIEWER"},{"updated":"2019-09-18 16:00:46.000000000","updated_by":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"reviewer":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"state":"REVIEWER"},{"updated":"2019-10-05 07:59:55.000000000","updated_by":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"reviewer":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"state":"REVIEWER"},{"updated":"2019-10-09 18:16:49.000000000","updated_by":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"reviewer":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"state":"REVIEWER"},{"updated":"2019-10-09 20:23:20.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"78907718f006f521a3a5d130f3f6469eb1284291","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-15 08:43:02.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c1cfb3bf21bf012ce8ed70a9d05bb454f373dad5","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-15 09:43:23.000000000","message":"Topic set to bug/1840235","accounts_in_message":[],"_revision_number":1},{"id":"08488a656c65117e1e93d54ed9e4d41bc54f7b90","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-15 10:40:56.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/ae58bbd902c0454c9b5bf0a4a7eff8d2 : SUCCESS in 1h 54m 45s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/5276803d37bf455e9d4317263fd83a38 : SUCCESS in 1h 30m 42s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/9759e33321ca481e88ec3c7e4c040800 : SUCCESS in 5m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/42e9ebeabbf343438a74cda0c6b4b7f5 : SUCCESS in 2m 59s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/3f2a3afd94bf487ebfc02cab61758fc1 : SUCCESS in 3m 24s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/d7423bf1e47042a2bd20bd092c68fa0e : SUCCESS in 2m 55s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/ec8a1bbb06074240b61ca3dccc0b9fe9 : SUCCESS in 3m 04s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/163ad8da99f04fa481aeaeb78ccb3b76 : SUCCESS in 1h 14m 36s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/531112ddef5140e386e4e92ebe0df74e : SUCCESS in 1h 00m 43s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/5e6cefefd02246b997b3d1f7e032f6df : SUCCESS in 3m 43s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/28333c3ce9ce4762a810ce3e36c47393 : SUCCESS in 4m 05s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/efa3a51bfe5a4667a1fbbee2c1039f08 : SUCCESS in 4m 16s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6ae1d0d8c35349d5a5d78c715357866b : SUCCESS in 3m 13s","accounts_in_message":[],"_revision_number":1},{"id":"31888e9f1374d87291fc9ad53f53eb91bdec0e9d","author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"date":"2019-08-15 18:34:13.000000000","message":"Patch Set 1:\n\nYou can create an Adapter with connect_retries set. What\u0027s the particular use case for adding it to Session?","accounts_in_message":[],"_revision_number":1},{"id":"4dbf5da2c62dc0a78bb2ee7d474853b0c66efebe","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-15 19:16:56.000000000","message":"Patch Set 1:\n\n\u003e You can create an Adapter with connect_retries set. What\u0027s the particular use case for adding it to Session?\n\nCan the auth plugins (we use those in heat[1]) use the adapter object? May be I\u0027m missing something, but, I don\u0027t see how that\u0027s possible[2]. \n\n[1]https://github.com/openstack/heat/blob/master/heat/common/context.py#L237-L256\n[2]https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/v3/base.py#L117","accounts_in_message":[],"_revision_number":1},{"id":"d2d4bf3b302664be321026af3a41c90f31b3cca9","author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"date":"2019-08-15 19:56:03.000000000","message":"Patch Set 1:\n\n\u003e \u003e You can create an Adapter with connect_retries set. What\u0027s the\n \u003e particular use case for adding it to Session?\n \u003e \n \u003e Can the auth plugins (we use those in heat[1]) use the adapter\n \u003e object? May be I\u0027m missing something, but, I don\u0027t see how that\u0027s\n \u003e possible[2].\n \u003e \n \u003e [1]https://github.com/openstack/heat/blob/master/heat/common/context.py#L237-L256\n \u003e [2]https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/v3/base.py#L117\n\nAn Adapter can be used in pretty much the same way as Sessions, and is initialized by a Session: https://docs.openstack.org/keystoneauth/latest/using-sessions.html#using-adapters . You can check other projects like nova, python-novaclient, ironic, or python-ironicclient, for examples on how it\u0027s used.\n\nAn Adapter is designed to access a specific service, whereas a Session is a generic token-containing object that could be used on any service. Personally, I think that retrying a connection should be set per-service or per-request, not globally, but I\u0027m open to being convinced otherwise.\n\nIf we do go this route, we would also have to port the other new retry-related options to the Session constructor: https://review.opendev.org/672930","accounts_in_message":[],"_revision_number":1},{"id":"32998bd95b096027f1c7535930ddfac1253c35fd","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-15 20:37:13.000000000","message":"Patch Set 1:\n\n\u003e An Adapter can be used in pretty much the same way as Sessions, and is initialized by a Session\n\nSure, I know it\u0027s a wrapper around Session, but, I don\u0027t think you answered my question. Can we use the adapter in place of a session with the plugins like in https://github.com/openstack/heat/blob/master/heat/common/context.py#L293, as it\u0027s not a subclass of Session?  \n\n\u003e whereas a Session is a generic token-containing object that could be used on any service\n\nWe cache session for every heat request (context) and then that\u0027s used for calls to multiple services.\n\n\u003e Personally, I think that retrying a connection should be set per-service or per-request, not globally\n\nThe kind of connection errors that we\u0027ve noticed (more details in the bug) won\u0027t be service specific. This patch also ensures that you can override it per request.\n\n\u003e we would also have to port the other new retry-related options\n\nI plan to backport this all the way to stable/queens. So not sure about the new options. Possibly we can add those in master in a later patch(?)","accounts_in_message":[],"_revision_number":1},{"id":"aad617acef54d4ae6bc859f0f27dc581f71762b4","author":{"_account_id":27427,"name":"David Peacock","email":"dpeacock@redhat.com","username":"davidjpeacock"},"date":"2019-08-16 15:24:09.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"3c0f6429e9f507c900b67f747f1cac7597a45985","author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"date":"2019-08-16 17:05:47.000000000","message":"Patch Set 1: Code-Review-1\n\n\u003e \u003e An Adapter can be used in pretty much the same way as Sessions,\n \u003e and is initialized by a Session\n \u003e \n \u003e Sure, I know it\u0027s a wrapper around Session, but, I don\u0027t think you\n \u003e answered my question. Can we use the adapter in place of a session\n \u003e with the plugins like in https://github.com/openstack/heat/blob/master/heat/common/context.py#L293,\n \u003e as it\u0027s not a subclass of Session?\n\nNo, an Adapter is not a drop-in replacement for a Session. You would have to update your code to use keystoneauth Adapters, but that should be relatively straightforward since you can just wrap the Session object you are already using in an Adapter. Here\u0027s an example of how nova does it:\n\nhttps://opendev.org/openstack/nova/src/branch/master/nova/utils.py#L1194\n\nI would recommend going that route, as it\u0027s intended to make everything you\u0027re doing in context.py a lot easier. I would also recommend using keystoneauth\u0027s built-in config loading helpers, e.g. replace this\n\nhttps://github.com/openstack/heat/blob/master/heat/common/config.py#L331-L367\n\nwith this\n\nhttps://opendev.org/openstack/nova/src/branch/master/nova/conf/utils.py#L58\n\n \u003e \n \u003e \u003e whereas a Session is a generic token-containing object that could\n \u003e be used on any service\n \u003e \n \u003e We cache session for every heat request (context) and then that\u0027s\n \u003e used for calls to multiple services.\n\nIt would be better still to replace almost all of that code with openstacksdk which will pretty much do everything for you.\n\n \u003e \n \u003e \u003e Personally, I think that retrying a connection should be set\n \u003e per-service or per-request, not globally\n \u003e \n \u003e The kind of connection errors that we\u0027ve noticed (more details in\n \u003e the bug) won\u0027t be service specific. This patch also ensures that\n \u003e you can override it per request.\n\nThe bug indicates that keystone is the main service that is causing trouble.\n\n \u003e \n \u003e \u003e we would also have to port the other new retry-related options\n \u003e \n \u003e I plan to backport this all the way to stable/queens. So not sure\n \u003e about the new options. Possibly we can add those in master in a\n \u003e later patch(?)\n\nBackporting is not an option. This is a feature, not a bugfix. https://docs.openstack.org/project-team-guide/stable-branches.html#review-guidelines","accounts_in_message":[],"_revision_number":1},{"id":"eff6fe6783d15c667740812c92d5a97253ab4143","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-19 05:52:26.000000000","message":"Patch Set 1:\n\nTbh, this discussion does not seem to very useful. I don\u0027t really understand the concern here.\n\n\u003e I would recommend going that route, as it\u0027s intended to make everything you\u0027re doing in context.py a lot easier.\n\nAre you sure you know heat auth model or to be specific, what\u0027s going on in context.py and how we use keystoneauth lib to suggest that?\nThough I agree that some things around loading etc can be improved, I\u0027m afraid you\u0027re possibly trivializing things by suggesting code in other projects. We do more with keystone than other projects and AFAIK, this code have been there in heat since mitaka (some of them were written by keystone cores).\n\nWe use keystone trusts for both long running tasks and for signaling from nova instances and we need to delegate roles of a user when creating the trust. And we need to have the AccessInfo object for a stored user(trustor) in heat to get the roles. We don\u0027t store the roles of a trustor and can\u0027t use admin api to get user roles. How do you think we can do that with an auth plugin and adapator object? \n\n\n\u003e The bug indicates that keystone is the main service that is causing trouble.\n\nThis seems like a spurious argument to me. I\u0027ll paste traceback for the same issue when nova is talking to neutron in the launchpad bug.\n\n\u003e Backporting is not an option. This is a feature, not a bugfix\n\nThough there can difference on opinion on what is a bugfix vs feature at times, I think salability issue with a stable branch is definitely a bug.","accounts_in_message":[],"_revision_number":1},{"id":"8a4096df8838ba8cd2317e26dcc76f484006dd69","author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"date":"2019-08-19 21:17:46.000000000","message":"Patch Set 1:\n\n\u003e Tbh, this discussion does not seem to very useful. I don\u0027t really\n \u003e understand the concern here.\n \u003e \n \u003e \u003e I would recommend going that route, as it\u0027s intended to make\n \u003e everything you\u0027re doing in context.py a lot easier.\n \u003e \n \u003e Are you sure you know heat auth model or to be specific, what\u0027s\n \u003e going on in context.py and how we use keystoneauth lib to suggest\n \u003e that?\n\nNo, I certainly don\u0027t claim to understand the heat auth model as I\u0027m not a heat developer and have scarcely looked at this code. My suggestions are based on briefly skimming it and noticing that it appears to reimplement a lot of functionality that is already handled by keystoneauth or openstacksdk.\n\n \u003e Though I agree that some things around loading etc can be improved,\n \u003e I\u0027m afraid you\u0027re possibly trivializing things by suggesting code\n \u003e in other projects.\n\nMy intention was not to trivialize things, but to suggest that borrowing successful patterns would make things easier for you.\n\n \u003e We do more with keystone than other projects and\n \u003e AFAIK, this code have been there in heat since mitaka (some of them\n \u003e were written by keystone cores).\n\nA lot has changed since mitaka, what was written by keystone cores then may no longer be the optimal solution.\n\n \u003e \n \u003e We use keystone trusts for both long running tasks and for\n \u003e signaling from nova instances and we need to delegate roles of a\n \u003e user when creating the trust. And we need to have the AccessInfo\n \u003e object for a stored user(trustor) in heat to get the roles. We\n \u003e don\u0027t store the roles of a trustor and can\u0027t use admin api to get\n \u003e user roles. How do you think we can do that with an auth plugin and\n \u003e adapator object?\n\nhttps://opendev.org/openstack/python-neutronclient/src/commit/ab426a791ad1937ea2cf3b340202b3968a378978/neutronclient/client.py#L379\n\n \u003e \n \u003e \n \u003e \u003e The bug indicates that keystone is the main service that is\n \u003e causing trouble.\n \u003e \n \u003e This seems like a spurious argument to me. \n\nI wasn\u0027t making an argument, I was stating what was in the bug report. Thanks for the additional context.\n\n \u003e I\u0027ll paste traceback for\n \u003e the same issue when nova is talking to neutron in the launchpad\n \u003e bug.\n \u003e \n \u003e \u003e Backporting is not an option. This is a feature, not a bugfix\n \u003e \n \u003e Though there can difference on opinion on what is a bugfix vs\n \u003e feature at times, I think salability issue with a stable branch is\n \u003e definitely a bug.\n\nI disagree but it\u0027s not my call as I\u0027m not a stable core, we can ask the stable team how they see it.\n\n---\n\nThe reason for my -1 is that I\u0027d prefer to limit the complexity of keystoneauth as much as possible. This library is used by basically everything and so I prefer to limit scope creep if at all possible. It\u0027s not a hard -1, if there is a demonstrable need for this feature then I\u0027m happy to accommodate it, but I think what you want to do can be accomplished in other ways.","accounts_in_message":[],"_revision_number":1},{"id":"f253acbbd93bc982a8abd03b29916ce976fe1fc1","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-20 00:06:02.000000000","message":"Patch Set 1:\n\n\u003e https://opendev.org/openstack/python-neutronclient/src/commit/ab426a791ad1937ea2cf3b340202b3968a378978/neutronclient/client.py#L379\n\nAnd...??  This is exactly what we do in heat. It would call session.request() [1][2] and not adapater.request()[3] where we use it\u0027s \u0027connect_retries\u0027 attribute. \n\n\n[1] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/v3/base.py#L183\n[2] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/session.py#L602\n[3] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/adapter.py#L209-L212","accounts_in_message":[],"_revision_number":1},{"id":"7010cb9242d96cd46bbafbc622c721d0bf84b6a4","author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"date":"2019-08-20 18:11:16.000000000","message":"Patch Set 1:\n\n\u003e \u003e https://opendev.org/openstack/python-neutronclient/src/commit/ab426a791ad1937ea2cf3b340202b3968a378978/neutronclient/client.py#L379\n \u003e \n \u003e And...??\n\nI was trying to provide a direct answer to your question, which was:\n\n \u003e \u003e \u003e And we need to have the AccessInfo object for a stored user(trustor)\n \u003e \u003e \u003e in heat to get the roles. We don\u0027t store the roles of a trustor and\n \u003e \u003e \u003e can\u0027t use admin api to get user roles. How do you think we can do that\n \u003e \u003e \u003e with an auth plugin and adapator object?\n\n \u003e This is exactly what we do in heat. It would call\n \u003e session.request() [1][2] and not adapater.request()[3] where we use\n \u003e it\u0027s \u0027connect_retries\u0027 attribute.\n \u003e \n \u003e \n \u003e [1] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/v3/base.py#L183\n \u003e [2] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/session.py#L602\n \u003e [3] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/adapter.py#L209-L212\n\nSo the real issue is that get_access and get_auth_ref don\u0027t pass any retry parameters to the request to keystone - which is what your bug report says, but you also mentioned issues with other services so I got distracted, apologies. get_access caches the AccessInfo object so I would not expect there to be a high failure rate, but I gather you\u0027re getting separate objects for each trustor, and I guess there could be many of them? \n\nI still have concerns about setting retries on a global session object that will be used for many different services - I\u0027d prefer an alternative solution that limits it to keystone, if being able to retry the token request is the main issue - but I\u0027m not interested in continuing to fight against it. In any case, this needs a unit test and a release note.","accounts_in_message":[],"_revision_number":1},{"id":"ac48431d8d7c72138e952f143ce03fcee61b23ef","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-08-20 18:16:53.000000000","message":"Patch Set 1:\n\nAs a stable core, I\u0027ll need to review more in depth if this falls within the stable guidelines for backporting, gut feeling is no it does not.\n\nI need to look through the comments a bit more before I can score this patch directly (for master). This is not meant to be a +1/-1 or other score comment, just noting that I\u0027ve seen the patch and need to look it over more.\n\nThe commit message is lacking a LOT of context and does not represent what is being done. Please provide:\n\n1) Unit Test (as Colleen requested)\n2) Release Note\n3) More complete commit message. The message has no indicator as to why retries are needed just that you\u0027re adding something to make auth functional (which, if it was broken, we\u0027d have bigger issues).","accounts_in_message":[],"_revision_number":1},{"id":"068bc5cc914da58a2f8ad800d80732932a303bad","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-21 04:35:01.000000000","message":"Patch Set 1:\n\n\u003e I was trying to provide a direct answer to your question, which was:\n\nThat question was surely in the context of the discussion, as you\u0027ve been insisting on rewriting heat code to use adapter interface and I was sure we can\u0027t use it for the use-case I\u0027m talking about (if you revisit the discussion trail).\n\n\u003e which is what your bug report says, but you also mentioned issues with other services so I got distracted,\n\nYes, I mentioned that other service calls too have the same problem replying to your point \"The bug indicates that keystone is the main service that is causing trouble.\", though. most of those clients we use in heat are using SessionClient(LegacyJsonAdapter) and we can surely pass connect_retries to their __init__(). But the whole point of me citing those examples is to justify that allowing users to set client_retries when creating session objects in not a bad idea.\n\n- User would create a session and then use it for all kinds of clients and with the auth plugin when getting tokens etc.\n- As all of those suffer from the same connection timeout issue under load, it would be better to allow setting the connect_retires in the session object.\n- It\u0027s no different from an attribute like \u0027rate_semaphore\u0027 (already there) which can also be thought of being request specific.\n\n- \u0027connect_retries\u0027 would default to 0, and unless user changes their code to use connect_retries when creating sessions, it would not have any impact, no backward compatibility issue, hence backportable.\n\n\u003e  I\u0027d prefer an alternative solution that limits it to keystone, if being able to retry the token request is the main issue - but I\u0027m not interested in continuing to fight against it\n\nI would surely love to hear about an alternate solution that\u0027s backportable. This discussion went tangential with your first review input which kind of read \u0027you\u0027re doing it all wrong, look at other projects that do it right\u0027. I did not really understand your objection to strat with, as we\u0027ve attributes like \u0027rate_semaphore\u0027 for rate control etc in the session and connect_retries would be something similar. Having said that, we need a solution for the scalability issues we\u0027ve in-hand and agree on a way forward.","accounts_in_message":[],"_revision_number":1},{"id":"977e9a671a204230fec98618e1984d6990267a06","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-21 06:33:53.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"695587dcfb338926334d9f556029530dc9936f5c","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2019-08-21 08:15:21.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"e1682d04b1c80016308ab8f7e72c3382073c88ff","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-21 08:29:13.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/38dfac1ad4ca49e79ebce55e5f18334a : SUCCESS in 1h 43m 24s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/a5ba425199f045838f46b6828f7eea11 : SUCCESS in 1h 32m 50s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/17c506f18e6b4f6c834959707f4c2175 : SUCCESS in 7m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/23689d5098f54ba3baedd9463842cbd4 : SUCCESS in 4m 50s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/654ea894353b4d32bafecc6400316866 : SUCCESS in 4m 59s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/035eafd173404e58b091fb57db8380aa : SUCCESS in 5m 32s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/5c6edf70f63e4f668aadde04c9c0d183 : SUCCESS in 6m 52s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/404090012b2c4ae892bdb76622d568d3 : SUCCESS in 1h 02m 50s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/93a52df2f2ab4a918d2aba0889db53ad : SUCCESS in 1h 09m 22s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/9762a2e5c8c24e3d97e83d487741a925 : SUCCESS in 6m 34s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/425e61044a994fa09a578a198d7da0df : SUCCESS in 5m 27s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/7102da30b8e941678e9181619c252a0d : SUCCESS in 5m 07s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c3af67838a974b0fb167bbb64a39afc4 : SUCCESS in 4m 08s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/edf0d5e60aee488fb21eb7fdd0627794 : SUCCESS in 5m 07s","accounts_in_message":[],"_revision_number":2},{"id":"24dd881a6ce8c5688e1fb21212648f1cc636d530","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-21 08:40:44.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"b740aa60f77434766943d782c6ff3a1bd635c987","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2019-08-21 09:40:30.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"c981f1ae9c06125efab5df3963dde7ada0a870dc","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-21 09:45:03.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"733b12a2a2bd2904227aa7f3fc72be593d2e9b1c","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2019-08-21 09:47:11.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"30fc21b55202cbe2a48dae5aeb91ef496cb257e5","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-21 09:49:03.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"c22dda4820538174d9032e2fe5ddb22eb50ea140","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-21 09:57:03.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"fd9df60766646a0e9dff32a1ad8911401bc58d99","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2019-08-21 09:59:07.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"7a783609d629c406e6f5c767e9082b435693340b","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-21 11:26:01.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/b321c5cd1d234f86be9a5daf9eccb7d4 : SUCCESS in 1h 35m 53s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/842f601575694d2ea795b90753bc3ece : SUCCESS in 1h 19m 01s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a9a3412515144089a55acaeb5254ce72 : SUCCESS in 6m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c5cad0bf93ae41ffb4abc4a41c15ba79 : SUCCESS in 4m 50s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/352109b001964edaaf6b7a7234bc665f : SUCCESS in 5m 09s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/a2f7175e4ae54ed8a206e8388ecd7c8b : SUCCESS in 5m 26s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/1deda066183c40fcac188301b550ac0a : SUCCESS in 5m 14s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/835f2d1f25d049a195ab6c4a5c7eaaa8 : SUCCESS in 1h 03m 44s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/d96385e5bdfb4081bb907d632580890c : SUCCESS in 58m 01s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/47d1242ae51c4726b8286792d80f6630 : SUCCESS in 4m 56s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/f8062623ded54430a8b8c7c82346a3ff : SUCCESS in 6m 03s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/28b3b8f5eebe401991d7e0ab49d7ccd3 : SUCCESS in 5m 49s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dd521563919a4a288cc06aabd3f767a5 : SUCCESS in 4m 42s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/abbc7d7c1971499da286643693f997cf : SUCCESS in 4m 01s","accounts_in_message":[],"_revision_number":3},{"id":"8a38e8a506b2442999fedf6490845b3c4269eeef","author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"date":"2019-08-21 13:11:29.000000000","message":"Patch Set 3: Code-Review-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"d01d92371724212e683ed0d499d7818616f924e3","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-21 14:42:46.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"55c470d0f01fda271284dbf87a0e35b03eafffd6","author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"date":"2019-08-21 15:50:57.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"ecef009b47ad6a1559e4e8a2974ca217e6f3ab1a","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-08-21 17:48:14.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"843cb92dba9bb6052c2f58f30b8de8424a42555e","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-08-21 18:15:49.000000000","message":"Patch Set 3: Code-Review+1\n\n(2 comments)\n\nMy comments are not requirement to change the code, I am adding +1 here, and can continue the constructor discussion before we land the code.\n\nI still generally feel as though this is the wrong place to add this in. I want to say that this can be part of an adapter (as is shown in the traceback in the bug).\n\nSimilarly, if you are doing a ton of requests it is possible to do a single auth request and extract the discovery bits (auth wise) and apply endpoint overrides. \n\nWith all of that said, I want to get one more pass on this before upping to a +2. I am trying to suss out if there is a better place for this to live (e.g. something in SDK).\n\nFinally, I would like one additional test case highlighting the following:\n\nTest in-session set retries and override the call args to be significantly higher or lower, ensuring that the call_args take precedence over session supplies retries (and encoding that as expected behavior so future changes don\u0027t break that).\n\nThanks for bearing with us. Changes to KeystoneAuth have a high bar (generally) because we can (according to contract) never back out a behavior, intentional or otherwise, once a release has been cut (short of 2 cases: 1) security concerns, 2) we changed a behavior that was already happening, and we need to revert to maintain our \"we will not break you\" contract).","accounts_in_message":[],"_revision_number":3},{"id":"987b50bccefa6217631676ad5210c0abbb7129c9","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-08-21 21:32:35.000000000","message":"Patch Set 3:\n\nAnother thing we should do if we decide to introduce retries at the session-level is to document the use-case and how invoking retries here is different from using the adapter.","accounts_in_message":[],"_revision_number":3},{"id":"792d55f848db8cb12b9924106ce20f43cf0b599a","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-08-21 21:36:13.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"5c5a70d70b424f6906347e681088f853d747229c","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-08-22 21:34:03.000000000","message":"Patch Set 3:\n\nDropping this here since it\u0027s related.\n\nThis is a heat patch for using the existing adapter retry logic - https://review.opendev.org/#/c/678039/","accounts_in_message":[],"_revision_number":3},{"id":"a190e25f5567c14b3b0f1743893d1b20f076e74a","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-23 04:30:42.000000000","message":"Patch Set 3:\n\n\u003e This is a heat patch for using the existing adapter retry logic - https://review.opendev.org/#/c/678039/\n\nIt won\u0027t help for endpoint discovery/plugin.get_access() cases we\u0027re addressing/discussing here. Having an option to set retry in session would ensure that all these issues would be fixed with https://review.opendev.org/#/c/676664/ (won\u0027t need https://review.opendev.org/#/c/678039/). \n\nWithout having retry in session object, we may also have to make similar changes in other services where we don\u0027t build the adapter from config using the loading interface.","accounts_in_message":[],"_revision_number":3},{"id":"e9f5d9b0758054ca3e82867b7928435bab612f57","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-23 07:02:12.000000000","message":"Patch Set 3:\n\nAlso get_endpoint()[1] in the adapter interface can not use retries as it also calls get_access() from the auth plugin[2] with the session object. So if number of concurrent consumers call get_endpoint() with the adapter interface/object, it would have the same issue.\n\n\n[1] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/adapter.py#L265 \n[2]https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/identity/base.py#L271","accounts_in_message":[],"_revision_number":3},{"id":"492b47997e5886afebf0080a2d1074be0eef5015","author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"date":"2019-08-23 15:07:14.000000000","message":"Patch Set 3:\n\n(6 comments)\n\nThe fact that there\u0027s no other way to set the number of retries when getting a token or the service catalog seems like a compelling reason to do something like this. I agree there might be something to be said for having a way to set the retries for _only_ those requests, but from glancing through the code that looks like it would be a much more intrusive change.","accounts_in_message":[],"_revision_number":3},{"id":"4565a60d5887e8f746825b1fb8a8d8ed8139cdde","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-08-23 15:36:21.000000000","message":"Patch Set 3:\n\nThis code is fine. The defaults (though not my preference) are fine. The tests could use a second pass to be less \"magic\".\n\nThere is one additional test that is needed before I can bump this to +2, I need to see a test where the session-version of the retries is set and we explicitly override it. This is to encode the behavior that we currently have. I\u0027ll spin up a local test to verify this and can supply a follow up. IF this does not work (the call args overriding the session retries), we will need to handle the case 100% outside of the session. I expect to be back to this with a result in about an hour.","accounts_in_message":[],"_revision_number":3},{"id":"32606e2574e4cd4a87e93257e5ff6872981fc73a","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-08-23 15:55:09.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"452776e3a0098f463aa2fc82162afe46da06369e","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-08-23 15:58:28.000000000","message":"Patch Set 4: Code-Review+1\n\nI\u0027ve published a change that seems to make sense for clarity on the test(s) so they are a bit less magical and added a test that explicitly shows that call args are overriding the session retries.\n\nThis should be fine now; the only question I have is if we can manage to lean on the call args for the default instead of the session in-built retries (or if it makes sense at all), so in essence we populate the connect_retries call arg with the default and therefore we limit the possible diverging code paths; if call args are specified with a connect_retries, we still adhere to the passed-in-explicit connect_retries.\n\nI\u0027ve also added the bug to the release note.\n\nI\u0027ve marked this +1 for feedback and will upgrade to +2 once feedback has been received. I have confirmed pep8/py3 tests work locally.","accounts_in_message":[],"_revision_number":4},{"id":"f250f1f9af086c60b0fe836209b22381eac3394a","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-08-23 16:04:36.000000000","message":"Patch Set 4:\n\nah it appears my question about call args is self-answering; it does what i described. Still waiting for feedback, but can see this as a +2 to land for at least forward looking releases of keystoneauth once that happens.","accounts_in_message":[],"_revision_number":4},{"id":"a9c8fb335e9c26814947186d4626eb368e135ecf","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-23 17:42:35.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/40c92d476447419fadaa1934b527f138 : SUCCESS in 1h 45m 29s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/6eaba78c284a47cf80d8207c4f05bdb8 : FAILURE in 1h 16m 53s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e914007e60934e4eae755c374e8c980c : SUCCESS in 5m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/af4453d8d2794081bc97198f18a5937d : SUCCESS in 4m 38s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/dde1d87ce2ef4cbab98aa67599bd7584 : SUCCESS in 3m 54s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ff2d7e49b1ba41ec8b2b3d0135b8c40c : SUCCESS in 4m 14s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/6d278010881a4760b8449bbbe3731b60 : SUCCESS in 4m 39s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/6b58da2cda1b49ca8dba5ee757b43d7f : SUCCESS in 1h 01m 43s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/1ea45d26e16844aabaaecd389879f0e9 : SUCCESS in 1h 00m 47s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/d5b21b34a3be44788dcf24a1a3d568b7 : SUCCESS in 5m 16s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/8fd518363cad4f899f474739d553bead : SUCCESS in 6m 06s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/eacd948669b04ec290584da7fd847946 : SUCCESS in 6m 47s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fb7a29f262c5489b8e4112d6c7f48d27 : SUCCESS in 6m 13s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/bbda7c71978b4ad496b6154b987cd00e : SUCCESS in 4m 27s","accounts_in_message":[],"_revision_number":4},{"id":"9abc424d7c47f574a5817c182df95f541cd61720","author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"date":"2019-08-23 19:38:49.000000000","message":"Patch Set 4:\n\nrecheck","accounts_in_message":[],"_revision_number":4},{"id":"7eb139712c054587a8a68bad6282defe351a808a","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-23 21:26:45.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/d441989af0bb4fccb2ecbc1820f3473f : SUCCESS in 1h 45m 27s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/db1b009c156a4cbea0d13b81724fe704 : SUCCESS in 1h 26m 49s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/1b54fb0cd56245c1b5428818604d5714 : SUCCESS in 5m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4de15e3e10ca4a859f7d0fa627c3cc6a : SUCCESS in 4m 09s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/2382561410aa46b3b1c973974d7570c2 : SUCCESS in 7m 09s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/efeb9286d34a448f912484edab6df251 : SUCCESS in 4m 51s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/91a08bba410c4539823c477a0c716f7f : SUCCESS in 8m 18s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/01fa2b3db63943a3b0ba2d1081557d81 : SUCCESS in 1h 12m 07s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/5498dae46f7342c39ee338342603b348 : SUCCESS in 1h 12m 10s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/75724fcb94ff436a81df288632eafd51 : SUCCESS in 3m 59s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/c179b94cc06f4611a19f696ea374bd3f : SUCCESS in 5m 41s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/b7a67345eb5c4e6bba2fcc877416e400 : SUCCESS in 8m 01s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/aa36f1585f254001873375f2dd7d25d7 : SUCCESS in 5m 01s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e420606922c84addab46e46c68de79d6 : SUCCESS in 4m 44s","accounts_in_message":[],"_revision_number":4},{"id":"568590d4ebb33a70578917aa56d8ae1ac2de38d1","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-08-26 13:47:00.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"9231bf7e184bf74d18a2b10e5185852d034036d7","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-08-26 14:33:32.000000000","message":"Patch Set 4: Code-Review-1\n\n(1 comment)\n\nI added a follow on patch that exposes a possible issue with the default arguments for connect_retries (per Zane\u0027s comment).\n\nIf we move forward with this patch I don\u0027t think we will break anyone immediately since there isn\u0027t any code that exists to supply connect_retries on a Session. Everything would be per requests on the session-level. That said, I\u0027m not sure we should release this if it\u0027s possible to lock yourself out of a certain connection limit or leave it un-settable, leading to poor developer experience, IMO.","accounts_in_message":[],"_revision_number":4},{"id":"1259b45fac6dcd4792324902bf837c46dfa2b1c9","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-08-26 15:16:24.000000000","message":"Patch Set 4: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"2662de98a0b10ab38b418306821fce7b1595c739","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-08-27 04:55:40.000000000","message":"Patch Set 4:\n\n\u003e if it\u0027s possible to lock yourself out of a certain connection limit or leave it un-settable.\n\nIt\u0027s un-settable in a sense that you can\u0027t set it to 0 (only) per request (and the one set in session overrides). I don\u0027t see a big developer experience issue with that (not sure what circumstances developer would do that), though it can surely be addressed here.\n\n\n\u003e As an aside, should we disallow negative retries?\n\nhttps://github.com/openstack/keystoneauth/blob/master/keystoneauth1/session.py#L1002-L1003","accounts_in_message":[],"_revision_number":4},{"id":"83adc19bffa4df1ea1f18eaf3c0059a85d04291e","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-09-04 22:04:16.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"e648273cef19ef7bca55ca98db264ed1e10d4e40","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-05 00:26:50.000000000","message":"Patch Set 5: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/fe5049814bb74f6ea6c545c280d120c3 : SUCCESS in 2h 07m 22s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/f64a8b496b384746a6c479b07b564528 : SUCCESS in 1h 42m 26s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/613fce5182414d49a79dee82e8914fd5 : SUCCESS in 6m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/289639702e844334be6e63cdea47a8d1 : SUCCESS in 6m 02s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/5cb4b950939848f1b2bc82f56ba7e9f5 : FAILURE in 4m 26s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c12ef87a01ad4f45a62245b44920b428 : FAILURE in 5m 50s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/6648d0e6eb2942448c7bc4cda955e896 : FAILURE in 5m 26s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/653fba813dd94fa087d66abb29e986a8 : SUCCESS in 1h 09m 36s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/1a8ca3efd03a45458185e006f6d1876b : SUCCESS in 1h 02m 35s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/6887e5045c054dd98c1d05f457fb8b07 : SUCCESS in 4m 05s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/d5a313e56e4e4f16a0c267bc1844af7f : SUCCESS in 6m 01s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/4cf9b125b880478fa814eada0657b201 : SUCCESS in 5m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a61923d55ba64aeeace275c6b4c3b61c : SUCCESS in 5m 41s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/09156307cf644a1a8304ee1e5c0f7d82 : SUCCESS in 5m 05s","accounts_in_message":[],"_revision_number":5},{"id":"f0fe49ad0c1b10c1a290188abce139b11358129e","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-09-05 13:21:36.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"d11c36af5fa631517848df86e915bf0d3a5e2a71","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-05 17:44:51.000000000","message":"Patch Set 6: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/4ffd2a8f3b144caea3c2bb392a0f5a5e : FAILURE in 1h 24m 03s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/550c24a5c264469fb0660be2209c3e55 : SUCCESS in 1h 30m 25s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/6da2d9e73a574ee69a5e451ff8eb1857 : SUCCESS in 4m 57s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cb9acd1d41014642950f874984dec84c : SUCCESS in 3m 58s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/b68d395ecbae4f6997c5dd9f6576173f : FAILURE in 4m 42s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/e0c3c9af7d6a40a5b70d2627a7c4c27c : FAILURE in 3m 51s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/be7562f20a6a4bcf93286b6fa6ecae2a : FAILURE in 4m 31s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/41087d056196477c9671d15c131114b2 : SUCCESS in 53m 51s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/682cdef24ff24e2da461423c0e378431 : SUCCESS in 56m 12s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/61836cb60f1b4d42b2eb67b13686565b : SUCCESS in 5m 49s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/71650482475b41e093ffbcdc0e49f0c8 : SUCCESS in 6m 23s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/0188b47cc86b4913aec715d1ee0ed1b7 : SUCCESS in 6m 16s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c08a7cd695ae4fe7a0c205edbd49c459 : SUCCESS in 5m 27s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/96ed02f1246e460f843cf114c1f8d752 : SUCCESS in 4m 08s","accounts_in_message":[],"_revision_number":6},{"id":"69ecfc0bb04c503ef3b77e7e051f7af78bc7a0c8","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-09-05 19:31:27.000000000","message":"Patch Set 7: Commit message was updated.","accounts_in_message":[],"_revision_number":7},{"id":"fb301cb52e8776e34b839fbe6e1f07458040712d","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-09-05 20:10:25.000000000","message":"Patch Set 7:\n\n\u003e \u003e if it\u0027s possible to lock yourself out of a certain connection\n \u003e limit or leave it un-settable.\n \u003e \n \u003e It\u0027s un-settable in a sense that you can\u0027t set it to 0 (only) per\n \u003e request (and the one set in session overrides). I don\u0027t see a big\n \u003e developer experience issue with that (not sure what circumstances\n \u003e developer would do that), though it can surely be addressed here.\n \u003e \n \u003e \n \u003e \u003e As an aside, should we disallow negative retries?\n \u003e \n \u003e https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/session.py#L1002-L1003\n\nHowever, you have to look at current behavior. The Keystoneauth contract must maintain current behavior at the cost of ease of code writing, if you can set the value to zero now and get zero retries it MUST continue to do that.","accounts_in_message":[],"_revision_number":7},{"id":"1bc32370dae3aabebba2c1a2fdf38f397f92edc3","author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"date":"2019-09-05 20:11:28.000000000","message":"Patch Set 7:\n\nAs it stands LGTM. Waiting on Zuul response.","accounts_in_message":[],"_revision_number":7},{"id":"eb5a2bfc20c3b76a4f83eeca606603832e410fea","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-09-05 21:32:16.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/39b77fa2eb424a7d88983b97f7643f7f : SUCCESS in 1h 53m 57s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/c05030135da3481dae1ea37fea38767e : SUCCESS in 1h 48m 28s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/2f6f1d777be546f8bc442a21e324292a : SUCCESS in 7m 02s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/10710c0c69d7499cb81dc25b6771a099 : SUCCESS in 7m 26s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/42af7769d4774a84ba9338d167708298 : SUCCESS in 7m 07s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/9ea1418a104b4b699278e2a89a4cf978 : SUCCESS in 4m 04s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/728e5cf23bd64c28ab1385b6e30f11f8 : SUCCESS in 4m 57s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/82227b42acc74a8ba6fd8890690dc8f7 : SUCCESS in 59m 10s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/018ecbdfe21641799c209f7aa5de111e : SUCCESS in 1h 05m 04s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/f73ac6bf502b4fccad12dd72663af43d : SUCCESS in 4m 51s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/432a359adf5a42d98f721df914ea5312 : SUCCESS in 4m 52s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/c8362b6ad4b3440385dfc8fc023056c9 : SUCCESS in 5m 32s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7321407874614439884ba57613ff83ce : SUCCESS in 4m 45s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/367edeb5216d4a1bb8de941bd83dbcc4 : SUCCESS in 4m 19s","accounts_in_message":[],"_revision_number":7},{"id":"15990294391e91bc91e7235f202779274c09f223","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-09-09 17:09:16.000000000","message":"Patch Set 7:\n\nI\u0027m going to abstain from applying a +2 or +W to this change since I pushed the last revision.","accounts_in_message":[],"_revision_number":7},{"id":"34613fe47c5318760516980f256f86dbe6d447d8","author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"date":"2019-09-18 15:48:31.000000000","message":"Patch Set 7: Code-Review+1\n\nAny chance of getting this merged soon?","accounts_in_message":[],"_revision_number":7},{"id":"2b5cad20c6a2c40aca05c36b25664f03a8b7acc3","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2019-09-18 16:00:46.000000000","message":"Patch Set 7:\n\n\u003e Any chance of getting this merged soon?\n\nIf we do merge this I think we\u0027ll have to wait for rc1 next week to cut a release. I don\u0027t think there is anything preventing us from picking up reviews outside of other priorities for Train that the team is trying to wrap up.\n\nI\u0027ll let Colleen and Morgan weigh-in since they\u0027ve had feedback previously.","accounts_in_message":[],"_revision_number":7},{"id":"02eb4cf5917e8de03c7768c5391c5cc651434f3e","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2019-10-05 07:59:55.000000000","message":"Patch Set 7: Code-Review+2","accounts_in_message":[],"_revision_number":7},{"id":"4ca506e6f255546b3fdddd63fb24e41e892d59f3","author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"date":"2019-10-09 18:16:49.000000000","message":"Patch Set 7: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":7},{"id":"e276acb71e74fccc41d4a81f137b1a2a5fb53d87","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-10-09 18:17:01.000000000","message":"Patch Set 7: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":7},{"id":"ec73ec07456ba4878074943a47cfa2f443f9ce91","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-10-09 20:23:20.000000000","message":"Patch Set 7: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- tempest-full https://zuul.opendev.org/t/openstack/build/81f2df29ce6745d6801b581518cdeb40 : SUCCESS in 2h 00m 28s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/2d1568a333de43a0bb9676ea2a5c3e25 : SUCCESS in 1h 43m 34s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/9bb625cafa60469cbff6e86042069d62 : SUCCESS in 6m 16s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ed50dee859274972b54755ecb2bd84de : SUCCESS in 3m 24s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/4e5cc42c06104432ac83c0b727e87201 : SUCCESS in 3m 35s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ff0a61f034b94fedbde6c22636b0011e : SUCCESS in 4m 11s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/5e6191fcdb234cf89c66fb8ce2c88cf7 : SUCCESS in 4m 21s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/2a268f0494f644a6b3896098d7fa6f88 : SUCCESS in 1h 05m 24s\n- openstacksdk-functional-devstack-tips-python2 https://zuul.opendev.org/t/openstack/build/c227c3856daf44f29f593cdc977b6acf : SUCCESS in 1h 16m 45s\n- openstacksdk-tox-py36-tips https://zuul.opendev.org/t/openstack/build/3fac6388c73e4ad9b2f9310787b99c70 : SUCCESS in 6m 26s\n- osc-tox-py27-tips https://zuul.opendev.org/t/openstack/build/5046b3fa15be4bb5ae398368ad76eee2 : SUCCESS in 6m 41s\n- osc-tox-py36-tips https://zuul.opendev.org/t/openstack/build/323ce920b6fa42b2b3dea054501e0d67 : SUCCESS in 5m 15s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ffca5ecb128a439391b225792889a971 : SUCCESS in 7m 18s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8c047d7258e24e329ef60575a61a61f7 : SUCCESS in 5m 48s","accounts_in_message":[],"_revision_number":7},{"id":"c708d23853657a6b497b8bc3d028cec02ec0d939","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-10-09 20:23:21.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":7},{"id":"df7717979a14b8b9d1218cc282d5d073de41137d","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-10-09 20:24:33.000000000","message":"Patch Set 7:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8eed305f7b9a439595677fed84a6efe9 : SUCCESS in 45s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/868ebf95812e4a80b55d19148badbadd : SUCCESS in 54s","accounts_in_message":[],"_revision_number":7}],"current_revision_number":7,"current_revision":"373cbdbda8ab37ee48671258bad4c7645cd8ceae","revisions":{"54ad5c99c06df13cd00b67caca9086741e1edde3":{"kind":"REWORK","_number":1,"created":"2019-08-15 08:43:02.000000000","uploader":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"ref":"refs/changes/48/676648/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/48/676648/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/1"}}},"commit":{"parents":[{"commit":"38cd5fc6c39c38a51c11683884caf9696ce5f367","subject":"Merge \"add support for auth_receipts and multi-method auth\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/38cd5fc6c39c38a51c11683884caf9696ce5f367"}]}],"author":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-15 07:05:18.000000000","tz":330},"committer":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-15 08:38:50.000000000","tz":330},"subject":"Allow initializing session with connection retries","message":"Allow initializing session with connection retries\n\nAdding an option in Session.__init__() would allow it to be used\nin identity plugins for version discovery and getting auth tokens.\n\nChange-Id: Iffb671fefae23926b1f09017d9db438341eae238\nPartial-Bug: #1840235\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/54ad5c99c06df13cd00b67caca9086741e1edde3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/54ad5c99c06df13cd00b67caca9086741e1edde3"}]},"branch":"refs/heads/master"},"afd7083ffe19f99e1e7911091e19c840bcb66272":{"kind":"REWORK","_number":2,"created":"2019-08-21 06:33:53.000000000","uploader":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"ref":"refs/changes/48/676648/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/48/676648/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/2"}}},"commit":{"parents":[{"commit":"38cd5fc6c39c38a51c11683884caf9696ce5f367","subject":"Merge \"add support for auth_receipts and multi-method auth\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/38cd5fc6c39c38a51c11683884caf9696ce5f367"}]}],"author":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-15 07:05:18.000000000","tz":330},"committer":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-21 06:33:26.000000000","tz":330},"subject":"Allow initializing session with connection retries","message":"Allow initializing session with connection retries\n\nThough we can now set ``connect_retires`` while creating an adapter object,\nthat  would allow retries in case of connection timeout (ex. with session\nclients derived from Adapater/LegacyJsonAdapater), it can\u0027t be used in\ncertain scenarios like endpoint discovery with auth plugin get_discovery()\nor getting AccessInfo with get_access()/get_auth_ref().\n\nHaving ``connect_retires`` in Session constructor would allow users with option\nof setting it when creating session objects (if they want) and can be overridden\nper service with the adapter interface.\n\nChange-Id: Iffb671fefae23926b1f09017d9db438341eae238\nPartial-Bug: #1840235\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/afd7083ffe19f99e1e7911091e19c840bcb66272"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/afd7083ffe19f99e1e7911091e19c840bcb66272"}]},"branch":"refs/heads/master"},"7c22972915b5d582d5c1f132252898e9ed95a75f":{"kind":"REWORK","_number":3,"created":"2019-08-21 09:49:03.000000000","uploader":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"ref":"refs/changes/48/676648/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/48/676648/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/3"}}},"commit":{"parents":[{"commit":"38cd5fc6c39c38a51c11683884caf9696ce5f367","subject":"Merge \"add support for auth_receipts and multi-method auth\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/38cd5fc6c39c38a51c11683884caf9696ce5f367"}]}],"author":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-15 07:05:18.000000000","tz":330},"committer":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-21 09:47:08.000000000","tz":330},"subject":"Allow initializing session with connection retries","message":"Allow initializing session with connection retries\n\nThough we can now set ``connect_retires`` while creating an adapter object,\nthat  would allow retries in case of connection timeout (ex. with session\nclients derived from Adapater/LegacyJsonAdapater), it can\u0027t be used in\ncertain scenarios like endpoint discovery with auth plugin get_discovery()\nor getting AccessInfo with get_access()/get_auth_ref().\n\nHaving ``connect_retires`` in Session constructor would allow users with option\nof setting it when creating session objects (if they want) and can be overridden\nper service with the adapter interface.\n\nChange-Id: Iffb671fefae23926b1f09017d9db438341eae238\nPartial-Bug: #1840235\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/7c22972915b5d582d5c1f132252898e9ed95a75f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/7c22972915b5d582d5c1f132252898e9ed95a75f"}]},"branch":"refs/heads/master"},"7b84dc5e889eedc9adf4a28a66da9b0400fccbb4":{"kind":"REWORK","_number":4,"created":"2019-08-23 15:55:09.000000000","uploader":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"ref":"refs/changes/48/676648/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/48/676648/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/4"}}},"commit":{"parents":[{"commit":"38cd5fc6c39c38a51c11683884caf9696ce5f367","subject":"Merge \"add support for auth_receipts and multi-method auth\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/38cd5fc6c39c38a51c11683884caf9696ce5f367"}]}],"author":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-15 07:05:18.000000000","tz":330},"committer":{"name":"morgan fainberg","email":"morgan.fainberg@gmail.com","date":"2019-08-23 15:55:08.000000000","tz":-420},"subject":"Allow initializing session with connection retries","message":"Allow initializing session with connection retries\n\nThough we can now set ``connect_retires`` while creating an adapter object,\nthat  would allow retries in case of connection timeout (ex. with session\nclients derived from Adapater/LegacyJsonAdapater), it can\u0027t be used in\ncertain scenarios like endpoint discovery with auth plugin get_discovery()\nor getting AccessInfo with get_access()/get_auth_ref().\n\nHaving ``connect_retires`` in Session constructor would allow users with option\nof setting it when creating session objects (if they want) and can be overridden\nper service with the adapter interface.\n\nChange-Id: Iffb671fefae23926b1f09017d9db438341eae238\nPartial-Bug: #1840235\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/7b84dc5e889eedc9adf4a28a66da9b0400fccbb4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/7b84dc5e889eedc9adf4a28a66da9b0400fccbb4"}]},"branch":"refs/heads/master"},"fd5b012393595ff87258f6f19268d7a484385955":{"kind":"REWORK","_number":5,"created":"2019-09-04 22:04:16.000000000","uploader":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"ref":"refs/changes/48/676648/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/48/676648/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/5"}}},"commit":{"parents":[{"commit":"38cd5fc6c39c38a51c11683884caf9696ce5f367","subject":"Merge \"add support for auth_receipts and multi-method auth\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/38cd5fc6c39c38a51c11683884caf9696ce5f367"}]}],"author":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-15 07:05:18.000000000","tz":330},"committer":{"name":"Lance Bragstad","email":"lbragstad@gmail.com","date":"2019-09-04 22:02:12.000000000","tz":0},"subject":"Allow initializing session with connection retries","message":"Allow initializing session with connection retries\n\nThough we can now set ``connect_retires`` while creating an adapter object,\nthat  would allow retries in case of connection timeout (ex. with session\nclients derived from Adapater/LegacyJsonAdapater), it can\u0027t be used in\ncertain scenarios like endpoint discovery with auth plugin get_discovery()\nor getting AccessInfo with get_access()/get_auth_ref().\n\nHaving ``connect_retries`` in Session constructor would allow users\nwith option of setting it when creating session objects (if they want)\nand can be overridden per service with the adapter interface.\n\nThis commit also changes the default value of ``connect_retries`` from\n0 to None to allow for adapter\u0027s to override retries on the session\nobject.\n\nChange-Id: Iffb671fefae23926b1f09017d9db438341eae238\nPartial-Bug: #1840235\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/fd5b012393595ff87258f6f19268d7a484385955"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/fd5b012393595ff87258f6f19268d7a484385955"}]},"branch":"refs/heads/master"},"c692e613a58866c37fd44ba40d1085a0d6ef9182":{"kind":"REWORK","_number":6,"created":"2019-09-05 13:21:36.000000000","uploader":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"ref":"refs/changes/48/676648/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/48/676648/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/6"}}},"commit":{"parents":[{"commit":"38cd5fc6c39c38a51c11683884caf9696ce5f367","subject":"Merge \"add support for auth_receipts and multi-method auth\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/38cd5fc6c39c38a51c11683884caf9696ce5f367"}]}],"author":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-15 07:05:18.000000000","tz":330},"committer":{"name":"Lance Bragstad","email":"lbragstad@gmail.com","date":"2019-09-05 13:21:25.000000000","tz":0},"subject":"Allow initializing session with connection retries","message":"Allow initializing session with connection retries\n\nThough we can now set ``connect_retires`` while creating an adapter object,\nthat  would allow retries in case of connection timeout (ex. with session\nclients derived from Adapater/LegacyJsonAdapater), it can\u0027t be used in\ncertain scenarios like endpoint discovery with auth plugin get_discovery()\nor getting AccessInfo with get_access()/get_auth_ref().\n\nHaving ``connect_retries`` in Session constructor would allow users\nwith option of setting it when creating session objects (if they want)\nand can be overridden per service with the adapter interface.\n\nThis commit also changes the default value of ``connect_retries`` from\n0 to None to allow for adapter\u0027s to override retries on the session\nobject.\n\nChange-Id: Iffb671fefae23926b1f09017d9db438341eae238\nPartial-Bug: #1840235\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c692e613a58866c37fd44ba40d1085a0d6ef9182"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c692e613a58866c37fd44ba40d1085a0d6ef9182"}]},"branch":"refs/heads/master"},"373cbdbda8ab37ee48671258bad4c7645cd8ceae":{"kind":"NO_CODE_CHANGE","_number":7,"created":"2019-09-05 19:31:27.000000000","uploader":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"ref":"refs/changes/48/676648/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/48/676648/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/48/676648/7"}}},"commit":{"parents":[{"commit":"38cd5fc6c39c38a51c11683884caf9696ce5f367","subject":"Merge \"add support for auth_receipts and multi-method auth\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/38cd5fc6c39c38a51c11683884caf9696ce5f367"}]}],"author":{"name":"Rabi Mishra","email":"ramishra@redhat.com","date":"2019-08-15 07:05:18.000000000","tz":330},"committer":{"name":"Lance Bragstad","email":"lbragstad@gmail.com","date":"2019-09-05 19:31:22.000000000","tz":0},"subject":"Allow initializing session with connection retries","message":"Allow initializing session with connection retries\n\nThough we can now set ``connect_retires`` while creating an adapter object,\nthat  would allow retries in case of connection timeout (ex. with session\nclients derived from Adapater/LegacyJsonAdapater), it can\u0027t be used in\ncertain scenarios like endpoint discovery with auth plugin get_discovery()\nor getting AccessInfo with get_access()/get_auth_ref().\n\nHaving ``connect_retries`` in Session constructor would allow users\nwith option of setting it when creating session objects (if they want)\nand can be overridden per service with the adapter interface.\n\nThis commit also changes the default value of ``connect_retries`` from\n0 to None to allow for adapter\u0027s to override retries on the session\nobject.\n\nDepends-On: https://review.opendev.org/#/c/680497/\n\nChange-Id: Iffb671fefae23926b1f09017d9db438341eae238\nPartial-Bug: #1840235\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/373cbdbda8ab37ee48671258bad4c7645cd8ceae"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/373cbdbda8ab37ee48671258bad4c7645cd8ceae"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
