Wednesday, 2017-04-05

*** spilla has quit IRC00:01
*** masterjcool has joined #openstack-keystone00:01
*** jlopezgu_ has quit IRC00:02
*** thorst has joined #openstack-keystone00:02
*** gsilvis has joined #openstack-keystone00:02
*** thorst has quit IRC00:07
*** dikonoor has joined #openstack-keystone00:15
*** agrebennikov has quit IRC00:34
*** thorst has joined #openstack-keystone00:34
*** lucasxu has joined #openstack-keystone00:36
*** thorst has quit IRC00:38
*** lucasxu has quit IRC00:40
openstackgerritGage Hugo proposed openstack/keystone master: Replace usages of SHA1 with SHA256  https://review.openstack.org/45335700:43
openstackgerritD G Lee proposed openstack/keystonemiddleware master: Remove log translations  https://review.openstack.org/44784100:44
*** zhurong has joined #openstack-keystone00:45
*** hoonetorg has quit IRC01:02
*** liujiong has joined #openstack-keystone01:18
*** dikonoor has quit IRC01:21
openstackgerritEmilien Macchi proposed openstack/keystone master: Add sem-ver flag so pbr generates correct version  https://review.openstack.org/45340401:27
*** zhangjl has joined #openstack-keystone01:30
openstackgerritEmilien Macchi proposed openstack/keystone master: Add sem-ver flag so pbr generates correct version  https://review.openstack.org/45342001:33
*** thorst has joined #openstack-keystone01:38
*** edmondsw has joined #openstack-keystone01:41
*** thorst has quit IRC01:43
*** edmondsw has quit IRC01:46
*** Brent_ has joined #openstack-keystone01:52
*** zhurong has quit IRC01:52
*** Brent_ has quit IRC01:56
*** yulijie has quit IRC01:56
*** zhurong has joined #openstack-keystone01:57
*** masber has quit IRC01:57
*** jamielennox is now known as jamielennox|away02:07
*** jamielennox|away is now known as jamielennox02:21
*** zhurong has quit IRC02:38
*** thorst has joined #openstack-keystone02:40
*** ravelar has quit IRC02:49
*** Shunli has joined #openstack-keystone02:56
*** KarolynC has joined #openstack-keystone02:58
*** thorst has quit IRC02:58
*** brenttang has joined #openstack-keystone03:00
*** KarolynC has left #openstack-keystone03:02
*** zhurong has joined #openstack-keystone03:12
*** links has joined #openstack-keystone03:16
*** nicolasbock has quit IRC03:20
*** knangia has quit IRC03:21
*** adriant has joined #openstack-keystone03:30
*** edmondsw has joined #openstack-keystone03:30
*** brenttang has quit IRC03:33
*** edmondsw has quit IRC03:34
*** stingaci has joined #openstack-keystone03:35
openstackgerritMerged openstack/keystone master: Move credential policies to DocumentedRuleDefault  https://review.openstack.org/44923303:36
*** stingaci has quit IRC03:39
*** namnh has joined #openstack-keystone03:46
*** rderose has quit IRC03:47
*** stingaci has joined #openstack-keystone03:47
*** masber has joined #openstack-keystone03:56
*** dave-mccowan has quit IRC04:05
*** rcernin has joined #openstack-keystone04:06
*** stradling has joined #openstack-keystone04:09
*** zhurong has quit IRC04:12
*** rcernin has quit IRC04:13
*** dikonoor has joined #openstack-keystone04:27
*** zhurong has joined #openstack-keystone04:35
*** richm has quit IRC04:36
*** richm has joined #openstack-keystone04:41
*** MarkMielke has joined #openstack-keystone04:43
*** chlong has quit IRC04:49
*** Shunli has quit IRC04:52
*** knangia has joined #openstack-keystone04:53
*** thorst has joined #openstack-keystone04:55
*** thorst has quit IRC05:00
*** lamt has joined #openstack-keystone05:03
*** jaosorior_away is now known as jaosorior05:11
*** aojea has joined #openstack-keystone05:21
*** tonyb_ is now known as tonyb05:25
*** Shunli has joined #openstack-keystone05:29
*** aojea has quit IRC05:30
*** hoonetorg has joined #openstack-keystone05:33
*** stradling has quit IRC05:36
*** lamt has quit IRC05:40
*** richm has quit IRC05:44
*** toabctl has joined #openstack-keystone05:52
toabctlcould somebody have a look at https://review.openstack.org/#/c/453245/ please? the tests for keystonemiddleware are failing due to a oslo.messaging update05:53
*** Shunli has quit IRC05:53
*** stingaci has quit IRC05:53
toabctlayoung, ^^05:54
*** Shunli has joined #openstack-keystone05:54
*** thorst has joined #openstack-keystone05:56
*** thorst has quit IRC06:01
*** pcaruana has joined #openstack-keystone06:08
*** hoonetorg has quit IRC06:29
*** rcernin has joined #openstack-keystone06:31
*** voelzmo has joined #openstack-keystone06:40
*** hoonetorg has joined #openstack-keystone06:42
*** voelzmo has quit IRC06:45
*** voelzmo has joined #openstack-keystone06:45
*** tesseract has joined #openstack-keystone06:52
*** voelzmo has quit IRC06:55
*** voelzmo has joined #openstack-keystone06:56
*** thorst has joined #openstack-keystone06:57
*** knangia has quit IRC07:01
*** thorst has quit IRC07:01
*** zsli_ has joined #openstack-keystone07:02
*** zsli_ has quit IRC07:03
*** zsli_ has joined #openstack-keystone07:03
*** zsli_ has quit IRC07:04
*** zsli_ has joined #openstack-keystone07:04
*** zsli_ has quit IRC07:05
*** voelzmo has quit IRC07:16
*** aojea has joined #openstack-keystone07:24
*** voelzmo has joined #openstack-keystone07:26
*** Shunli has quit IRC07:28
*** Shunli has joined #openstack-keystone07:28
*** Shunli has quit IRC07:28
*** Shunli has joined #openstack-keystone07:28
*** voelzmo has quit IRC07:35
*** Aqsa has joined #openstack-keystone07:50
*** thorst has joined #openstack-keystone07:57
*** zzzeek has quit IRC08:00
*** zzzeek has joined #openstack-keystone08:00
*** aojea_ has joined #openstack-keystone08:01
*** aojea has quit IRC08:04
*** thorst has quit IRC08:17
*** voelzmo has joined #openstack-keystone08:21
*** voelzmo has quit IRC08:26
*** jaosorior is now known as jaosorior_lunch08:31
*** henrynash has joined #openstack-keystone08:38
*** namnh has quit IRC08:41
*** bjornar_ has joined #openstack-keystone08:41
*** thorst has joined #openstack-keystone09:14
*** thorst has quit IRC09:18
*** zsli_ has joined #openstack-keystone09:29
*** Shunli has quit IRC09:32
*** zsli_ has quit IRC09:36
*** liujiong has quit IRC09:55
*** mvk has quit IRC10:00
*** nicolasbock has joined #openstack-keystone10:07
*** voelzmo has joined #openstack-keystone10:10
*** richm has joined #openstack-keystone10:13
*** voelzmo has quit IRC10:14
*** henrynash has quit IRC10:18
*** pcaruana|afk| has joined #openstack-keystone10:21
*** pcaruana|afk| has quit IRC10:23
*** pcaruana has quit IRC10:24
*** pcaruana has joined #openstack-keystone10:25
*** zhurong has quit IRC10:30
*** jaosorior_lunch is now known as jaosorior10:31
*** mvk has joined #openstack-keystone10:32
*** voelzmo has joined #openstack-keystone10:38
*** adriant has quit IRC10:51
*** stingaci has joined #openstack-keystone10:55
*** zhangjl has quit IRC10:57
*** stingaci has quit IRC10:59
*** dave-mccowan has joined #openstack-keystone11:07
samueldmqtoabctl: done11:13
samueldmqmorning keystone11:13
*** thorst has joined #openstack-keystone11:15
*** thorst has quit IRC11:19
*** cristicalin has joined #openstack-keystone11:22
ayoungtoabctl, loooking11:23
* ayoung shrugs11:25
*** stradling has joined #openstack-keystone11:30
*** thorst has joined #openstack-keystone11:41
samueldmqayoung: dstanek: lbragstad: I'd appreciate your view on bug 168004011:48
openstackbug 1680040 in OpenStack Identity (keystone) "Not all GET should have a correspondent HEAD, and vice-versa" [Undecided,New] https://launchpad.net/bugs/168004011:48
samueldmqayoung: dstanek: lbragstad: it became more obvious to me when reviewing antwash's docs on the available APIs for policies11:49
*** cristicalin has quit IRC11:52
ayoungsamueldmq, not worth the effort, and the logic is suspect11:52
ayoungsamueldmq, checking an endpoint exisitence should be fine11:53
ayoungHEAD on the lists is dumb, as you point out11:53
ayoungas there will always be a list object , just it might be empty11:53
samueldmqayoung: it's not checking endpoint's existence, just the existence of the relation project/endpoint11:53
samueldmqayoung: that can be accomplished with the HEAD11:54
ayoungsamueldmq, GET /OS-EP-FILTER/projects/{project_id}/endpoints/{endpoint_id}11:54
ayoungYeah, but I'm not sure I agree with removing that, or if we should fill in the body with something sane11:54
ayounglike at least the link to the service object11:55
ayoungprobably the latter11:55
samueldmqayoung: yes, the point is that we don't have a representation for that body11:55
samueldmqand we don't need to11:55
ayoungwhy not?11:55
samueldmqthere is no entity for relations in keystone11:55
ayoungjust because current clients don't use it does not mean it should not be there11:55
samueldmqthey can't use because it does not exist11:56
samueldmqI don't think GET /OS-EP-FILTER/projects/{project_id}/endpoints/{endpoint_id}11:56
samueldmqreturning {'project_id': ID, 'endpoint_id': ID} is any useful11:56
ayoungI understand, but it should actually return the same value as  GET /catalog/endpoints/{endpoint_id}11:56
ayoungor a pointer to it11:56
ayoungit is pretty useless as is11:57
samueldmqayoung: agreed. I don't see the point of returning anything in an operation that is designed to check11:57
ayoungbut, not worth the time to remove things we've documented11:58
samueldmqayoung: the endpoint could be GET directly, I'd vote for only keep HEAD when we need to check11:58
ayoungjust to "clean up"11:58
samueldmqayoung: but that's a reasonable alternative, yes11:58
ayoungdon't remove.11:58
ayoungyou don't know who decided to use a documented API, and who it would break11:58
samueldmqayoung: we're only starting to document that now afaik in the policy docs effort11:58
samueldmqsomeone out there could be using one of those APIs though, even if it's not documented in our API docs12:00
ayoungsamueldmq, if you really care about REST compliance, there are far more important aspectes we are missing. HATEOAS12:00
samueldmqayoung: example ?12:01
ayoungsamueldmq, discoverability12:01
ayoungsamueldmq, if we had implemented Keystone as a Web UI it would be obvious12:01
*** raildo has joined #openstack-keystone12:01
ayoungfrom htpps://servername:35357 you can find /v312:01
ayoungfrom /v3 you cannot find anything12:01
ayoungfrom  /v3/users you cannot find the data that tells you how to add a new user12:02
ayoungetc etc etc12:02
samueldmqayoung: like discovering what's in the next level, and so on12:02
ayoungyep12:02
samueldmqayoung: from /v3/users you could return the json schema representation for a user entity, for example ?12:03
ayoungsamueldmq, or figuring out how to return "here is the role you need to execute this api..."12:03
samueldmqayoung: yes12:03
*** rmascena has quit IRC12:03
ayoungsamueldmq, so review my patch, please12:03
ayoungand my spec on it12:04
samueldmqayoung: API discoverability is important to app developers I think, seeing what's available and how it's structured/represented12:04
samueldmqayoung: 'roles for APIs' might be specially useful for users/admins to give permissions to those users12:04
samueldmqayoung: https://review.openstack.org/#/c/401808/ ?12:05
openstackgerritayoung proposed openstack/keystone-specs master: Commit to RBAC in middleware in Pike release  https://review.openstack.org/45219812:05
samueldmqayoung: and this is the spec ^  ?12:06
*** edmondsw has joined #openstack-keystone12:10
openstackgerritMerged openstack/keystonemiddleware master: Remove deprecated oslo.messaging aliases parameter  https://review.openstack.org/45324512:23
ayoungsamueldmq, yep12:25
*** thiagolib has joined #openstack-keystone12:28
*** shuyingy_ has joined #openstack-keystone12:31
cmurphysamueldmq: i think notmorgan may have thoughts on GET/HEAD requests as he originally filed https://bugs.launchpad.net/keystone/+bug/137033512:32
openstackLaunchpad bug 1370335 in OpenStack Identity (keystone) "Keystone should support HEAD requests for all GET /v3/* actions" [Wishlist,Fix released] - Assigned to Colleen Murphy (krinkle)12:32
*** shuyingy_ has quit IRC12:33
samueldmqcmurphy: nice catch, thanks for the heads up12:33
cmurphynp12:34
samueldmqnotmorgan: bug 168004012:34
openstackbug 1680040 in OpenStack Identity (keystone) "Not all GET should have a correspondent HEAD, and vice-versa" [Undecided,New] https://launchpad.net/bugs/168004012:34
*** lamt has joined #openstack-keystone12:40
*** henrynash has joined #openstack-keystone12:41
samueldmqayoung: done, commented on the spec12:44
-openstackstatus- NOTICE: The Gerrit service on http://review.openstack.org is being restarted to address hung remote replication tasks, and should return to an operable state momentarily12:51
dstaneksamueldmq: we need to keep HEAD requests.12:52
dstaneksamueldmq: do we specifically implement HEAD requests that are not just a  GET without the body?12:52
dstanekactually...we do and that's no a great thing12:55
*** markvoelker has joined #openstack-keystone12:55
openstackgerritSean McCully proposed openstack/keystoneauth master: KeystoneAuth should default to system CAFile.  https://review.openstack.org/45258512:59
samueldmqdstanek: yes, as per the examples I have put in the bug description13:03
*** spilla has joined #openstack-keystone13:04
*** shuyingya has joined #openstack-keystone13:06
dstaneksamueldmq: i commented on the bug. not sure if we should remove them13:06
samueldmq dstanek I agree with you that HEAD is important, but when it makes sense13:08
dstaneksamueldmq: in what case does it not make sense?13:08
samueldmqHEAD /role_assignments does not make sense at all for example13:08
samueldmqdstanek: ^13:08
samueldmqit's not checking the existence of anything13:08
*** links has quit IRC13:08
dstaneksamueldmq: a cache check13:08
*** smccully has joined #openstack-keystone13:08
samueldmqit's not referencing to the existence of an entity13:08
samueldmqdstanek: what is a cache check ?13:09
dstanekif we implement cache control headers, (or even not in some cases) this is how you would check to see if you needed to download the resource again13:10
*** catintheroof has joined #openstack-keystone13:10
*** catintheroof has quit IRC13:10
*** shuyingya has quit IRC13:11
*** catintheroof has joined #openstack-keystone13:11
samueldmqdstanek: but you'd need to provide something to the server. correct?13:12
samueldmqdstanek: such as the timestamp of the response you have in hands13:12
smccullyHI there, I submitted a Bug a couple of Days Ago. I am wondering if I could get some feedback. I added a few reviewers, based on previous Reviews I saw on gerrit13:13
smccullyhttps://bugs.launchpad.net/keystoneauth/+bug/167868613:13
openstackLaunchpad bug 1678686 in keystoneauth "keystoneauth doesn't use a default cafile" [Undecided,In progress] - Assigned to Sean McCully (sean-mccully)13:13
smccullyhttps://review.openstack.org/#/c/452585/13:14
smccullyNot entirely sure on the current scope of the issue, but I think some of what I've would be a positive addition to the current codebase13:14
smccully If there's a better time to bring this up, lmk as well13:14
*** henrynash_ has joined #openstack-keystone13:15
dstaneksamueldmq: nope, the server should respond with cache headers and that should be enough (cache-control, last-modified, etag, etc.)13:15
dstaneksamueldmq: the client could send if-*, age, etc.13:16
*** chlong has joined #openstack-keystone13:17
*** henrynash has quit IRC13:17
*** henrynash_ is now known as henrynash13:17
dstaneksmccully: if i'm reading correctly, this fixes an issue with how the cert path is found in older versions of 2.7?13:18
samueldmqdstanek: ok, that'd be useful in that case, but we don't do that :(13:18
samueldmqdstanek: also, what about the other case where a GET does not make sense and the HEAD does?13:18
*** henrynash_ has joined #openstack-keystone13:19
smccully@stanek, No this fixes an issue where your possibly using a selfsigned CA, or Cert and not all services let you pass CA Cert to Keystone Auth13:19
samueldmqI don't see a reason for supporting those now, as they are not useful at all :(13:19
samueldmqunless we do have plans to support the cache control HEADs13:19
smccullySo you can update your local CA Chains, but Keystone Auth will not nessecarily use your System CA Bundle13:19
dr_gogeta86hi guys13:19
smccullyif you dont explicitly point it to the right path13:19
*** henrynash__ has joined #openstack-keystone13:20
dr_gogeta86who can help me to find why keystone doesn't allow admin even with admin_token13:20
dr_gogeta86?13:20
smccullysorry, @dstanek ^^13:20
dstaneksamueldmq: we already have some caching support now. we just need to grow it13:21
dstaneksamueldmq: i can't think of a case there that actually makes sense13:21
smccully@dstanek, The problem is KeystoneAuth is throwing SSL Verfication Exceptions, even though the CA has been added to the System OpenSSL CA Bundle13:21
* samueldmq nods13:22
dstanekdr_gogeta86: what error are you getting?13:22
smccullyMost services allow you to define a "os-cacert" for use in verifcation HTTPS connection, but under all circumstances13:22
dr_gogeta8640113:22
smccullythis is very problematic13:22
samueldmqdstanek: let's see what other folks think about it too, thank you for your comment there13:22
*** henrynash has quit IRC13:22
dstaneksmccully: ah, i see. ok - i can take a look today13:22
smccullybut NOT under all cicrumstances13:22
samueldmqdstanek: I agree with you in the HEAD case if we have plans to grow our cache control support13:22
*** henrynash has joined #openstack-keystone13:23
dstaneksamueldmq: i have plans to do it :-) i submitted patches to us and client code in the past, but didn't get a ton of bites....maybe i'll un-abandon and polish them off13:23
*** henrynash_ has quit IRC13:23
samueldmqdstanek: nice!13:24
dstaneksamueldmq: we do lots of things like the vary header alrdady that only help the caching cause13:24
dstanekdr_gogeta86: what is in your logs?13:24
dr_gogeta86nothing just the 401 thin13:24
dr_gogeta86nothing just the 401 thing13:24
dr_gogeta86but nova and other services are ok13:24
samueldmqdstanek: glad to hear. that might be a lot of effort, but is something great to have13:24
dr_gogeta86just for the admin user13:24
samueldmqthanks for taking that13:24
dr_gogeta86and is strange13:24
*** henrynash__ has quit IRC13:24
*** knangia has joined #openstack-keystone13:25
dr_gogeta86dstanek, any hint ?13:26
dstanekdr_gogeta86: the only thing i can think of is that you are using incorrect credentials13:26
dr_gogeta86ok13:27
dstanekdr_gogeta86: are you able to auth and get a token at all?13:27
dr_gogeta86no13:27
dr_gogeta8640113:27
dr_gogeta86even with admin_token13:27
dstanekdr_gogeta86: well,  the admin token might be a different problem. do you have the middleware enabled?13:27
dr_gogeta86how to check13:27
dr_gogeta86?13:27
notmorgansamueldmq: please do not remove HEAD calls13:30
dstanekdr_gogeta86: it would be in your paste.ini file13:31
dr_gogeta86one moment13:32
dstaneknotmorgan: we are trying super hard to move away from RESTful APIs :-(13:32
samueldmqnotmorgan: same argument as dstanek's ? i.e cache control13:32
dr_gogeta86i think so13:32
notmorgandstanek: clearly13:33
notmorgansamueldmq: yes and any number of things. It costs us 0 to support it13:34
notmorganthe code is "do the same request, set headers, drop body data, send on wire"13:34
samueldmqnotmorgan: but at least it needs to make sense to support something13:34
samueldmqand be useful to something13:34
notmorganno, it doesn't13:34
samueldmqnot just because costs 0 correct13:34
notmorganwe should adhere to REST and HTTP specs13:34
notmorganHEAD is... look i am way before coffee atm13:35
samueldmqfrom an entity point of view, HEAD /collection does not make any sense to me13:35
samueldmqyou're not asserting the existence of anything at all13:35
notmorganHEAD is a basic function of HTTP13:35
samueldmqwould make sense for cache-control maybe13:35
dstaneknotmorgan: to be fair samueldmq is talking about a few cases where we have additional methods for HEAD requests13:35
notmorgandstanek: and in those cases we are doing it... well wrong13:35
notmorgandstanek: we should support HEAD and GET equally everywhere13:36
dstaneknotmorgan: maybe...or maybe not13:36
notmorganfor simplicity sake.13:36
dstaneksamueldmq: there is no reason why checking the existeance of a colletion would be wrong13:36
notmorgansamueldmq: content length, cache-control, etc. all valid reasons to use HEAD even if you don't look at the content itself13:36
samueldmqdstanek: checking there is not an empty set of role_assingments for example ?13:36
notmorganall useful13:37
samueldmqthat could be okay, but not useful ?13:37
notmorganremember, content-length needs to be the same with GET and HEAD (and if it's not, we broke something)13:37
samueldmqnotmorgan: exactly, that's what dstanek pointed out13:37
notmorganso an empty collection is []13:37
notmorganvery small content length13:37
notmorganthat *can* be useful13:37
dstaneksamueldmq: so some of you issue stems from not fulling understanding HATEOAS13:37
dstaneksamueldmq: you might legit need to see if that resource is even a thing anymore13:38
notmorganftr: I want to go a step further and implement IMS for *everything* in keystone13:38
samueldmqnotmorgan: IMS?13:38
notmorganbut we don't have all the backend data for that13:38
notmorganif-modified-since13:38
notmorganspecifically for caching13:39
samueldmqdstanek: seeing if that resource is a thing could be done with GEt anyways, correct?13:39
notmorgan"has X resource been modified since Y"13:39
dstaneknotmorgan: etag is easier. that was one of the keystone patches i threw together13:39
samueldmqnotmorgan: yes that'd make it easier to understand why it makes sense13:39
notmorgandstanek: both are useful, but IMS has less data on the wire, it's like head13:39
dstaneksamueldmq: i don't understand the question13:39
notmorgandstanek: and both can be implemented at the same time13:40
samueldmqdstanek: "samueldmq: you might legit need to see if that resource is even a thing anymore"13:40
dstaneknotmorgan: less data?13:40
samueldmqdstanek: that could be accomplished by trying a GET on the colelction ?13:40
notmorgandstanek: IMS responds with very little data (not the whole resource) if nothing has changed.13:40
notmorgandstanek: and is useful outside of etags13:40
notmorgandstanek: so you can do active validation of resource being the same.13:41
dstaneksamueldmq: well no. typically you post to a collection to add to it...if you want to see if it's still there you would HEAD it and not pull down the entire collection13:41
notmorgananyway.... not relavent for this13:41
notmorgandstanek: ++13:41
dstaneknotmorgan: the same is true of etage13:41
samueldmqdstanek: exactly, but you do HEAD /collection/<id>13:41
samueldmqnot HEAD /collection13:41
dstaneksamueldmq: no, i want to know i the collection still exists13:41
dstaneksamueldmq: so let's step back...13:42
samueldmqdstanek: like HEAD /role_assignments?user_id=<usre_id>13:42
notmorgandstanek: about the same amount of work (though etags are a LOT more processing)13:42
samueldmqto make sure that collection still exists ? i.e there is any role assingment for that user13:42
notmorganfor us.13:42
dstaneksamueldmq: my philosophy (which keystone doesn't share or understand) of API design is that the *only* URL you ever know for sure is a single entry point. every other URL is discovered through relationships.13:42
samueldmqdstanek: ok, so for example from /v3/ you should be able to discover everything13:43
dstaneksamueldmq: so sometimes you cache things. for an examle, a user is cached. in that user data there if a reference to an attributes collection. some smart apps may user HEAD to verify that is still the collectiona dn if not fetch the user again (even though it is cached)13:44
dstaneksamueldmq: yes13:44
notmorgansamueldmq:  All general-purpose servers MUST support the methods GET and HEAD (RFC 7231), while we're not "General purpose", we are running under a general purpose service. we should let people consume HEAD13:44
notmorganin all cases.13:44
notmorganit costs us nothing to do so, really.13:44
notmorgandon't assume you know better than the end user.13:44
dstaneksamueldmq: we do a terrible thing by documenting our routes in the API docs13:44
notmorganfor basic protocol level things.13:45
*** lamt has quit IRC13:45
dstaneksamueldmq: and were heading straight into a ditch with using URL for policy (ditch meaning that REST is dead)13:45
samueldmqnotmorgan: yes, my point was that we're not making it useful, because we don't even support cache-control properly today13:45
notmorganthen fix cache-control13:45
samueldmqnotmorgan: but if we do have plans to (as dstanek said), that's nice13:45
notmorgandon't remove head13:45
dstaneksamueldmq: even if we never implement we need to keep it13:46
*** agrebennikov has joined #openstack-keystone13:46
samueldmqok, I am convinced in that case13:46
dstanekexistence check all the things13:46
samueldmqbut what about the other? GET /users/<uid>/groups/<gid>13:46
samueldmq^13:46
samueldmqthat's basically checking a user is in a group, that's a HEAD for me13:47
notmorgana GET can result in no data13:47
notmorganand it's fine if GET response the same way13:47
samueldmqbut what is that GET useful for ?13:47
notmorganand can be used for existence13:47
notmorganGET and HEAD are always interchangable, with the difference being HEAD is identical to GET without content13:47
notmorganif GET has no content, it's still a gET request13:48
samueldmqok, I thought HEAD was the one intended for checking existence13:48
samueldmqbut seems like GET can be too13:48
notmorganyes.13:48
*** shuyingya has joined #openstack-keystone13:48
notmorganGET can always be used for existence as well13:48
notmorganboth are 100% valid to use.13:48
dstaneksamueldmq: maybe your api grows data in the GET case13:48
samueldmqmaybe not13:48
samueldmqgotcha13:49
dstaneksamueldmq: when it was added, by whom, whatever13:49
dstaneknotmorgan: what do you think of the RBAC by URL idea?13:50
samueldmqok I am convinced that bug is not valid13:51
samueldmqthanks dstanek and notmorgan13:51
dstaneksamueldmq: my pleasure13:51
samueldmqdstanek: notmorgan: is there a best-practice doc/book you use for designing rest apis ?13:51
lbragstadsamueldmq i use dstanek13:51
dstaneklbragstad: lol13:52
*** henrynash has quit IRC13:52
dstaneksamueldmq: the original thesis is a good place for theory and background13:52
lbragstadsamueldmq  " dstanek: the definitive guide to doing it better with REST"13:52
samueldmqlbragstad: ++ lol13:52
dstaneksamueldmq: i found a reference when i was finding proof of my opinion on another REST bug....looking13:54
dstaneksamueldmq: http://whatisrest.com/13:54
*** henrynash has joined #openstack-keystone13:55
dstaneksamueldmq: word of warning...i've only read a few paragraphs on that entire site to make sure their view of a particular topic matched mine13:55
*** ravelar has joined #openstack-keystone13:59
* samueldmq nod14:01
samueldmqdstanek: thanks for the link, I will have a look14:01
*** henrynash has quit IRC14:04
*** jistr is now known as jistr|mtg14:07
knikollao/14:09
samueldmqknikolla: o/14:15
*** mdavidson has quit IRC14:18
*** chris_hultin|AWA is now known as chris_hultin14:20
*** chris_hultin is now known as chris_hultin|AWA14:28
*** chris_hultin|AWA is now known as chris_hultin14:29
*** dikonoor has quit IRC14:45
*** stingaci has joined #openstack-keystone14:57
lbragstadping antwash, raildo, ktychkova, dolphm, dstanek, rderose, htruta, atrmr, gagehugo, lamt, thinrichs, edmondsw, ruan, ayoung, ravelar, morgan, raj_singh, johnthetubaguy, knikolla14:59
lbragstadpre policy meeting ping14:59
edmondswlbragstad hour early again?14:59
lbragstadahhhh!!!15:00
*** bjornar_ has quit IRC15:00
edmondsw:)15:00
dstaneklbragstad: an hour from now is when we have our rackspace team meeting15:01
*** stingaci has quit IRC15:01
* lbragstad feels like he just used the @here feature of slack15:01
lbragstaddstanek yeah15:01
*** voelzmo has quit IRC15:01
edmondswsomeone needs to update their calendar :)15:01
dstaneklbragstad: so i won't be paying attention in policy for the first half :-)15:01
lbragstadedmondsw i know - i even have that meeting time set to UTC and i don't get the reminder for another half hour15:02
*** chlong has quit IRC15:03
*** chlong has joined #openstack-keystone15:04
dstaneklbragstad: you need to change you notification to match the time you want to notify chat :-)15:04
*** rderose has joined #openstack-keystone15:04
lbragstaddstanek yeah - that's a good idea15:04
dstanekstupid mac. have to reboot again15:06
dolphmdstanek: mine is at the apple store. repeatedly failed to boot after the last OS update. repeatedly failed to reinstall the OS via recovery mode.15:14
*** shuyingya has quit IRC15:15
lbragstaddolphm that sucks15:16
lbragstadwould anyone be interested in running the policy meeting today?15:16
EmilienMlbragstad: hey, can we have https://review.openstack.org/#/c/453420/ merged asap please? It would help us to test upgrades in tripleo ci15:18
bretonEmilienM: the commit looks empty to me15:20
EmilienMeveryone asks me that :D15:21
*** lamt has joined #openstack-keystone15:21
*** chlong has quit IRC15:21
EmilienMbreton: please look the commit message and https://docs.openstack.org/developer/pbr/#version15:21
bretonEmilienM: you should tell about it in commit message :)15:22
bretoni see the link15:22
dolphmbreton: the important bit is the Sem-Ver footer in the commit message15:22
bretonbut it should say "the commit is not empty, to understand what it doesn look at <link>"15:23
EmilienMbreton: sorry15:23
ayoungEmilienM, looking15:23
ayoungEmilienM, done15:24
EmilienMthx15:27
ayoungEmilienM, its a complex patch.  I hope it passes CI.15:29
ayoung:)15:29
EmilienMlol15:29
*** shuyingya has joined #openstack-keystone15:33
*** chlong has joined #openstack-keystone15:35
lbragstadayoung johnthetubaguy dstanek edmondsw heads up, i won't be able to attend the policy meeting today15:35
*** shuyingya has quit IRC15:38
*** jistr|mtg is now known as jistr15:40
*** jlopezgu_ has joined #openstack-keystone15:43
edmondswlbragstad should we just cancel the meeting today?15:46
lbragstadedmondsw we can - but i want to make sure folks have the opportunity to visit amongst themselves if needed15:46
lbragstadat the same time - we have a bunch of specs in review that we can provide feedback on so we can have discussions around it next week15:48
*** aojea_ has quit IRC15:49
toabctllbragstad, hey. I triggered a new keystonemiddleware release to be compatible with the latest oslo.messaging release. See https://review.openstack.org/#/c/453719/ . could you add your +1 as a PTL please?15:49
EmilienMayoung: you rocks, thanks15:49
ayoungEmilienM, less Rock, more Swing15:49
*** ravelar has quit IRC15:50
*** ravelar has joined #openstack-keystone16:01
ayounglbragstad, did you tag someone else to run it?16:10
*** agrebennikov has quit IRC16:20
*** itisha has joined #openstack-keystone16:21
openstackgerritJohn Garbutt proposed openstack/keystone-specs master: WIP: Course Policy check in middelware  https://review.openstack.org/45373916:24
johnthetubaguylbragstad: ayoung: tried to write up what I was describing I liked in the middleware checks ^16:27
*** chris_hultin is now known as chris_hultin|AWA16:38
lbragstadjohnthetubaguy awesome, thanks!16:39
*** chris_hultin|AWA is now known as chris_hultin16:41
*** chris_hultin is now known as chultin16:43
*** tesseract has quit IRC16:43
*** chultin is now known as chris_hultin16:47
*** stingaci has joined #openstack-keystone16:55
ayoungjohnthetubaguy, no.  please.17:02
ayoungjohnthetubaguy, you are just going to give the illusion that things are fixable.  They are not17:03
ayoungnot that way17:03
johnthetubaguyayoung: I am not saying that fixes everything, just that seems a way to stop some bleeding quickly17:03
ayoungjohnthetubaguy, the switch needs to be in the auth_token section of the middleware, or it is not implementable17:04
ayoungjohnthetubaguy, you don't put a band aid on a sucking chest wound17:04
*** gus has quit IRC17:04
*** jamielennox has quit IRC17:04
ayoungthat will actually do more damage.  Just help me get the RBAC in middleware approach in17:04
ayounganything else is a distraction, and will hurt things17:04
johnthetubaguybut I don't think the current RBAC in middleware is workable from the operator point of view, because it leaves too many policy checks still in the code and its all very messy17:05
*** gus has joined #openstack-keystone17:05
ayoungirrelevant17:06
ayoungjohnthetubaguy, think it through, please17:06
johnthetubaguyI guess I just don't understand the problems you are trying to fix yet17:06
ayoungassume that the projects are not going to change17:06
ayoungthis is Keystones job to coordinate17:06
johnthetubaguyayoung: for me the operability of this is king, and projects can and will change if even good reason too17:06
ayoungjohnthetubaguy, have you ever tried to make a change across all the projects?17:07
ayoungheh17:07
ayoungno17:07
ayoungjohnthetubaguy, this is what keystone does17:07
ayoungcinder does block storage17:07
*** jamielennox has joined #openstack-keystone17:07
ayoungneutron does networking17:07
johnthetubaguythe config changes have been fairly cross project17:07
ayoungkeystone does access control17:07
ayoungjohnthetubaguy, there is no guaranetee that even the Member role exists or is in use17:08
johnthetubaguyayoung: agreed17:08
*** jaosorior is now known as jaosorior_away17:08
ayoungyou add that in there, and you risk breaking people in deployment17:08
johnthetubaguymember role is not assumed17:08
ayoungso no changes to RBAC in the policy files can be added without breakage17:08
ayoungwe do this in middleware, the operators can role it out17:09
ayoungwe do it in middleware, it is available to all services  when the middleware is updated17:09
johnthetubaguyayoung: you can add changes without breaks, see the proposal in the Nova specs17:09
ayoungjohnthetubaguy, heh17:09
ayoungthat breaks everything17:10
ayoungNova can't write a spec that is goin to then affect Neutron17:10
ayoungthey need a neutron spec for that.  And CInder17:10
ayoungand glance17:10
ayoungand keystone17:10
ayoungand any other service out there17:10
johnthetubaguyI still don't get the breaks everything thing17:10
ayoungthis is not Nova's problem to solve, any more than Keystone can solve the per-instance ownership17:10
ayoungjohnthetubaguy, you need to change the default policy in every.single.project17:11
ayoungincluding ones that use Keystone that are not uinder the big tent17:11
johnthetubaguyI still don't see why17:11
johnthetubaguytoday any user has access across all the project by default, I don't change that17:12
johnthetubaguyits just that use has less access in Nova17:12
ayoungjohnthetubaguy, this is why I am signed up to give a presentation on it at the summit17:12
ayoungI've explained this, individually, to many many people17:12
ayoungjohnthetubaguy, but then you grant that access to new people, to people you might not have granted it to in the future17:13
ayoungand instead of them getting read only access, they have full access17:13
ayoungits not Nova's problem to solve17:13
ayoungread only, across the cluster, is a cluster admin decision, not a nova-core decision17:13
ayoungsame for any other service out there, including keystone17:13
ayoungwith the exception that Keystone is not yet doing its job in providind a mechanism to enforce, or even check, access17:14
ayoungjohnthetubaguy, and, the moment Nova starts coding Role decisions into its policy files, it has effectively locked the entire body of projects in to allowing for that role to exist17:15
ayoungjohnthetubaguy, what do you work on?  What has been your focus?17:16
johnthetubaguythe focus is on our operators request the ability to have this fine grained roles to give a user read access only with Nova17:18
johnthetubaguyits really just putting into the source tree what operators are having to do by hand today17:18
ayoungjohnthetubaguy, not just nova damnit17:18
johnthetubaguywe do in upstream, so each one of our users that wants this doesn't need to go through the pain, and upgrade it per release17:18
ayoungnova is not the only project that needs read only17:18
johnthetubaguysure, agreed17:19
ayoungso until you can enforce "all existing users are Member" or whatever default role, across the board, you don't have a solution17:19
johnthetubaguythe roles we are adding are nova specific, like compute_observer (minus the obvious issue they get you write access using the defaults in other projects)17:19
ayoungnom, they are not17:19
ayoungwe went through this17:20
ayoungI could not find the spec17:20
ayoungdolphm, and jamielennox wrote up a cross project spec fro this a year+ ago...17:20
ayoungI wish I could find the damn thing17:20
ayoungbut the mechanism in the RBAC-middleware spec grew out of that process17:20
johnthetubaguyright, I am saying they should be service specific, so you can hand out read access to only Nova, eventually17:20
johnthetubaguyimplied roles would then join up the read roles across different services as needed, I thought17:21
ayoungjohnthetubaguy, sure you could (and probably should) use implied roles that way17:21
ayounglet me see ionce again is I can find their spec17:22
ayoungI don't even know what project they filed it under17:22
*** mvk has quit IRC17:22
ayoungjohnthetubaguy, if you want that read only stuff to work, please support me on this17:22
johnthetubaguyit was openstack-specs I think17:22
ayoungit is one of the driving use cases...17:22
ayoungok, let me look again17:22
johnthetubaguyI just don't see how it works for operators17:22
johnthetubaguyI added commens on the spec to ask the questions I have about your approach17:23
ayounghttps://review.openstack.org/#/c/245629/17:23
lbragstadi followed up with dolphm a while ago on ^17:24
lbragstadi specifically asked why it failed17:24
ayounglbragstad, one main reason was the inability to add a new role without opening up all the other services17:25
lbragstadI understood his explanation as, it was hard to get traction on various roles suggestions in openstack while several of the policies within openstack conflict17:25
lbragstad(i.e. we have a messy house, let's clean our house)17:25
johnthetubaguythe transition is always the hard bit17:26
lbragstadat the time, keystone was *trying* to support two different policy files, one of which didn't even work by default17:26
johnthetubaguytill someone tries it, its hard to know how hard it is, largely17:26
johnthetubaguythe deprecated_default rule approach in oslo.policy I think would help us with the transition17:27
johnthetubaguyits a bit nuts, but I think it helps smoother the rougher edges17:27
lbragstadjohnthetubaguy did that just go into oslo.policy?17:27
ayoungOr, keystone could just do its damned job17:27
johnthetubaguylbragstad: I don't think its implemented yet17:27
lbragstadfor RuleDefault and DocumentedRuleDefault classes?17:27
lbragstadoh17:27
johnthetubaguyah, no its an extra bit17:27
ayoungif we can't even handle RBAC we should just shutter the project17:27
ayoungits more an impedement than a benefit at this point17:28
johnthetubaguyI mean I agree getting RBAC working for operators is crazy important, but I would say keystone fixes a big set of useful issues for folks as it is17:28
johnthetubaguylbragstad: basically, its where you log warnings if a user doesn't have the required role yet17:29
lbragstadjohnthetubaguy sure - that'd be nice to have17:29
johnthetubaguylbragstad: so you get a soft roll out of requiring a role17:29
ayoungjohnthetubaguy, not really.  There are much better tools for identity management out there.  But we are not going that way17:29
lbragstadjohnthetubaguy wasn't that staged for pike?17:29
johnthetubaguylbragstad: we can't do any additional roles without it, AFAIK17:29
johnthetubaguylbragstad: its kinda stuck in the Nova spec review at this point, not sure if its gone any further17:30
lbragstadah17:30
ayoungjohnthetubaguy, why are you tryin to undermine the RBAC in middleware approach?  Is it because you don't understand it, or you think it is fundamentally flawed?17:30
ayoungAnd role enforce in policy,json is going to make life harder, not easier, to solve the problem.17:30
* dolphm grabs the popcorn.17:30
ayoungAnd-> any17:30
lbragstadi find the usability of the rbac in middleware approach to be more trouble for operators than it's worth17:30
ayoungdolphm, same ole same ole17:30
ayounglbragstad, that is not an answer17:31
johnthetubaguyayoung: its because of the reasons I added on the spec review, largely operability, and I don't quite understand what extra it gives us from the other more iterative approach that the deployers seems to prefer17:31
ayounglbragstad, that is "I don't really understand it."17:31
lbragstadduplicating the role -> URL pattern -> operation mapping  across openstack is going to be a maintenance nightmare17:31
ayounglbragstad, nope17:31
lbragstadayoung ok17:31
lbragstadayoung walk me through an upgrade17:31
ayounglbragstad, it solves a problem due to the way we do role  to policy mapping, too17:31
johnthetubaguyayoung: it a I don't think this works for operators, for the reasons I put on the spec review I spend two hours doing this morning17:32
ayoungbut adding in a default is the primary thing there17:32
lbragstadwe have default17:32
lbragstadthey are in the project17:32
ayoungthe fact that policy is not mapped to an URL means that to figure out what role you need, you have to read the code17:32
ayoungthat is not an solution17:32
johnthetubaguyayoung: thats not my main problem, just one of them17:32
ayoungjohnthetubaguy, if I give in on this, it will stay broken17:33
johnthetubaguyayoung: I think my main worry is the approach just doesn't fit peoples current deploy models and pipelines17:33
ayoungyou will not get a soluytion, just more discussion17:33
lbragstadayoung if i'm not understanding things, please walk me though what an upgrade looks like17:33
ayounglbragstad, sure17:33
johnthetubaguyayoung: I am not asking you to give in, I am trying to work out if the approach could be tweaked to deal with the issues I mention in the review17:34
lbragstadjohnthetubaguy ++17:34
ayoungOK, the assumption we have had thus far is that RBAC belonds in policy.json17:34
ayoungand a lot of things have come up to challenge that assumption17:34
ayoungwe've based that assumption on the fact that it was the only tool available to customize access contrl17:35
ayoungso, we looked in to doing policy management via json, and a couple things became clear17:36
ayoung1.  the scope enforcement was something that people should not touch17:36
dolphm"RBAC belongs in policy.json" says nothing of how it's enforced, where it's enforced, or how it's managed17:36
ayoungall they can do is break it17:36
ayoungso, one of the early goal was to make it clearer where we were doing RBAC and where we were doing scope checks17:37
johnthetubaguyfor me scope issues are more an interoperability problem, we have some folks using it too well right now, to work around not having hierarchical quotas (long story)17:37
ayoungdolphm, do you want me to address that?17:37
dolphmayoung: not necessarily, i thought you were done -- continue first!17:37
ayoungdolphm, thanks17:37
ayoungarround 30 or so summits ago, David Lyl.e asked me how we could figure out (for horizon) what operations a user can do based on their roles17:38
ayoungat the time, it seemed like we could comb through the policy.json files to answer that question, too17:38
ayoungbut we really can't.17:38
ayoungWe can;t map from policy.json to operation17:39
ayoungits buried in code, in project specific ways17:39
johnthetubaguyyou can't map from policy file to operation being available either, hence the capabilities API discussions17:39
ayoungthen, we had people asking for standard roles17:39
ayoungjohnthetubaguy, it may be.  But they really are two different things17:40
openstackgerritAnthony Washington proposed openstack/keystone master: Remove unnecessary processing when deleting grant.  https://review.openstack.org/45093817:40
ayoungone is "can anyone do this"17:40
ayoungtjhe opther is "can I do this"17:40
ayoungvery different questions, very different ways of getting to the answer17:40
lbragstadi thought the latter was the one david-lyle asked for17:40
ayounglbragstad, nope17:40
ayounglbragstad, he wanted to customize the set of operations a user could do based on their role17:40
ayoungI'm sure they wanted the other, too, but they didn't ask me for it17:41
dolphmcustomize the horizon UI *17:41
ayoungdolphm, yep17:41
johnthetubaguybut thats not what the API user wants to know, they want to know "will this API work for me (given my token) on this cloud/type of resource/resource?", but thats a whole different conversation17:41
ayoungdolphm, better if I had said:17:41
ayounglbragstad, he wanted to customize the set of operations a user see in Horizon based on her role17:41
dolphmjohnthetubaguy: that's about the same question that david-lyle presented17:41
lbragstadayoung right - that makes sense17:42
lbragstadso based on a token, present me with a UI that makes sense for my scope and role17:42
lbragstaddon't show me things I can't do17:42
ayounglbragstad, right, and it is important for more than just Horizon17:43
ayoungspecifically, in delegation agreements, like Trusts used in Heat, you want to figure out what role you need to delegate to a remote user so it can operate on your behalf17:43
lbragstadright - imo that sounds like "given this token what can I do?" not "given this operation, who can do it?"17:43
ayoungif I need something that can only reboot a VM, I don't want it to upload a snapshot or create a new image or some other operation17:44
dolphmlbragstad: the only context i've heard that second question in is auditing17:44
johnthetubaguyits often about a specific VM, FWIW17:44
ayoungso, the implied roles effort grew out of that:  make it possible to break a big role down into smaller roles17:44
lbragstaddolphm ok - that makes sense17:44
ayoungbut the discoverability part requires a mapping17:44
ayoungI'll try to stay focused17:45
ayoungthere were a few efforts that went in parallel, but, I think your question is primarily why do I not think the operator experience is going to be negatively impacted?17:46
ayoungSo,  I started looking in to the mapping from policy to URLs/operations17:46
ayoungand I found out that very little policy does a role check today17:46
ayounga couple in keystone, and then the ubiquitous 'admin' checks17:47
ayoungand admin, it turns out, is only sometimes scoped to a proejct17:47
ayoungit really is a global role in many operations17:47
ayoungso, we have to grandfather in 'admin'17:47
ayoungfor the rest of the operations, what we really need is just a good default17:48
*** agrebennikov has joined #openstack-keystone17:48
ayoungie.  Member17:48
ayoungbut how do we enforce it?17:48
dstanekdolphm: auditing in the sense that you are checking the see that the security policy really is what you think it is?17:48
ayoungso...look at the complexity of the cloudsample policy file once henrynash started trying to make it enforce domain policies17:49
ayoungits hard to understand17:49
ayoungwhen what we really want for a default is like this:17:49
ayoungservice=compute all-verbs, all-urls, require: Member17:50
ayoungand use that rule unless there is something more explicit17:50
ayoungdoes it matter that it is a URL or a policy rule like  compute:reboot_server?17:50
dstanekayoung: to me yes17:50
ayoungWell, the second is only useful if you know in the code that you are doing the operation there and only there17:51
openstackgerritAnthony Washington proposed openstack/keystone master: Remove unnecessary processing when deleting grant.  https://review.openstack.org/45093817:51
ayoungdstanek, "me" meaning you as an operator?17:51
dolphmdstanek: yes, basically17:51
ayoungor you as a python developer?17:51
dstanekayoung: i only have a direct perspective as a python dev...so that for sure. i still don't understand how we screwed up so bad that operators need to understand URL structures17:52
ayoungdstanek, the URL structure is our public contract17:53
ayoungdstanek, I was not around in the days when they designed the nova APIs17:54
dstanekayoung: that's fundamentally bad and we shouldn't push that idea17:54
ayoungI can't speak to that.  But I do recall the arguments dolphm put forth for the v3 apis17:54
johnthetubaguyit was just made to be backwards compatible with rackspace slicehost, AFAIK17:54
ayoungjohnthetubaguy, Programming is like sex.  Make one mistake and support it for the rest of your life.17:55
dstanekif we want to claim REST then we should at least *try* to do the right things...and then we'd get the design benefits associated with it17:55
ayoungdstanek, so, I looked in to that17:55
ayoungit turns out, there is no way in REST/HTTP to say "here is the role you need to perform that operation"17:55
ayoungall HTTP gives you is 401/40317:56
ayoungHTTP confuses authentication with authorization in its responses17:56
johnthetubaguyI really don't see why end users need to know about policy17:56
dstanekayoung: that's not the issue i'm arguing17:56
ayoungjohnthetubaguy, really?17:56
johnthetubaguywell 401 is bad token, 403 is token not good enough I thought17:56
openstackgerritAnthony Washington proposed openstack/keystone master: Remove unnecessary processing when deleting grant.  https://review.openstack.org/45093817:57
ayoungdstanek, it was one of the design considerations, though17:57
johnthetubaguyayoung: see comments on your spec, tried to describe why I think that17:57
ayoungjohnthetubaguy, delegation17:57
ayoungthat is what we don't do now17:57
ayounglet me give you a scenario17:57
johnthetubaguyso its 7pm here now17:57
ayoungsay some group at my company is hosting a Trove server17:57
ayoungjohnthetubaguy, and I have to get kids in 10 minutes17:58
ayoungI'm almost done17:58
ayoungsay some group at my company is hosting a Trove server17:58
johnthetubaguyI get the delgation case17:58
ayoungand you, as the cloud admin, want to use it17:58
johnthetubaguyI just see it as an operator concern17:58
ayoungnope17:58
ayoungoperator may not be around17:58
ayoungit is a third party resource17:58
ayoungjust like when we go to launchpad prior to hitting gerrit17:58
ayoungthe Ubuntu operators are not part of the mix there17:59
ayoungsame deal here17:59
ayoungoauth kindof nods at the way to do this17:59
dstanekayoung: we can talk more about authz and rest....but i really don't like doing this stuff based on the URL18:00
ayoungI want access to a remote service.  I go to that service, and it kicks back an oauth response that says "you need to delegate X,T,Q, and P to do that"18:00
*** mvk has joined #openstack-keystone18:00
ayoungdstanek, same response I give anyone:  give me a better alternative18:00
ayoungI'm 100% willing to change my mind to back something better18:00
dstanekayoung: why not operation...like we do now...or like aws does in policy18:00
johnthetubaguydstanek: I am fine with using URLs really, I just think either way it needs to be described to the operators18:00
johnthetubaguydstanek: azure does like AD style URLs for similar things, which is another theme and variation I get18:01
johnthetubaguyto me its just a name with a meaning18:01
johnthetubaguyurl is a structure name that helps people guess better if they know the API, but meh, its a name18:01
dstanekas soon as you commit to url then you'll have to make sure urls don't do multiple operations or educate operators on exactly how things are implemented18:01
dstanekseems like a waste18:01
johnthetubaguydstanek: my main worry about URLs is alias points and things, again I added comments on the spec about some of the limitations that need to be defined, it seems workable though18:02
ayoungdstanek, don't just say "no" you have to say "instead do this..."18:03
dolphmand multiple API versions inherently require multiple rules?18:03
johnthetubaguyayoung: he said stick with abstract defined names like we have today18:03
dstanekhypothetical....if a call to backup a DB can optionally push that backup to swift. do you have to have crazy rules?18:03
lbragstaddolphm yeah18:03
dstanekdolphm: i think the current proposal is yes18:03
ayoungjohnthetubaguy, those are useless as I pointed out18:03
johnthetubaguyayoung: so I was expecting to use capabilities to do delegation I think18:03
lbragstador even if the same api version supports two ways to do something18:04
dolphmayoung: from a user perspective, if I get a 401 with "you didn't match a policy rule called compute:boot_vm, even though you have roles X, Y, and Z in project ABC" then that would give me enough to "debug" the situation18:04
dstaneklbragstad: right. operators have to know the implementation details now18:04
johnthetubaguyayoung: so are URLs really, you need to enumerate the options and special codes, and what they all mean18:04
ayoungdolphm, you should not have to perform a destructive operation to figure that out18:04
johnthetubaguydstanek: you seen how this is looking now? https://docs.openstack.org/developer/nova/sample_policy.html18:04
ayoungwhat if you don't want to delete the VM, just figure out how to do that later?18:05
ayoungor image18:05
ayoungor whatever18:05
lbragstadagain - that seems like auditing18:05
lbragstadto a certain extent18:05
dstanekjohnthetubaguy: yeah, we've been moving that way in keystone too. definitely not a fan.18:05
johnthetubaguydstanek: its just stopping folks from having to read the code though right?18:06
lbragstadjohnthetubaguy i think it is18:06
lbragstadjohnthetubaguy the operators i've visited with were asking for that kind of information18:06
johnthetubaguydstanek: doesn't change we have codes for each check point18:06
dstanekjohnthetubaguy: i think, but it starts to officially propogate the need to understand URLs18:06
dolphmayoung: sorry, a destructive operation? like delete VM? (what are you destroying?)18:06
ayoungdolphm, anything that changes state18:07
ayoungupdate18:07
ayoungdelete18:07
lbragstaddolphm using the an operation to determine *if* you can do something18:07
dstanekdolphm: i think he is saying that he wants something to query to see if you can do it without trying18:07
ayoungIf I want to create a delegation agreement, or if Horizon wants to tell me I can delete somehing, it should not have to call DELETE (thing) to find out that I can18:07
dstanekthat's what i thought the capabilities API was going to be18:07
lbragstad(when you might not actually want to do it, just know if you can do it) is ayoung's case18:07
dolphmoh, sure. i'm just saying we could be providing more user feedback today without risking security18:07
johnthetubaguydstanek: so you have to understand the REST API to work out how to understand what you need to restrict, so I was having understand the REST API (or knowing the URL of the api-ref) as required for any operator working with policy18:07
dolphmi'd like to be able to have JSON-Home respect by authorization, as well18:08
dstanekfirst a way to see all the things and then grow into using policy to tell you if you can perform some action on some resource18:08
johnthetubaguydstanek: right capabilities is what I see as the end user thing, not the policy rules18:08
dstanekjohnthetubaguy: why is that the case. that's what i don't understand.18:08
johnthetubaguyyou would do delegation on the capabilities, I assumed, I think I assumed that18:08
lbragstadyeah - because service configuration needs to get worked into that answer as well... it's not strictly RBAC18:08
dstanekjohnthetubaguy: when i make policy for AWS I have no idea what the URLs are.18:09
dstanekjohnthetubaguy: for desktop software i can't tell you what C function is called and what DLL/SO it comes from18:09
ayoungdstanek, URLs are the main tools of REST.  We can make something on top of that to improve the user expereince18:09
ayoungthe CLI and the clients know what URLS they are going to call18:09
ayoungit does not have to show up as an URL to the end user, just that is the remote contract18:10
dstanekayoung: sorta....but nobody should know about all of the URLs. that is not REST. that's just a HTTP API18:10
johnthetubaguydstanek: thats why we included the text descriptions, the URLs are just extra help if you know the URLs from reading the logs, etc18:10
dstaneka REST client should only have 1 or a small few entrypoints into an API... the rest must be discovery18:10
ayoungdstanek, as I said, there is not really a RESTful way to do this18:10
dstanekwe are soooo close on a lot of it18:10
ayoungthere is not a verb for "show me what I can do"18:11
ayoungHEAD might be the closest18:11
dstanekayoung: i don't see why not18:11
ayoungdstanek, take it up with Sir Berniers-Lee18:11
dstanekayoung: i don't understand what you can't do.18:12
ayoungdstanek, I can't discover what Roles I need in order to perform an operation prior to performing it18:12
dstanekso you get a 4XX. we can put what you need to access it in the body if we want. we can provide an api to query for capabilities18:12
dolphmayoung: Accept: "application/json-home"18:12
dstanekayoung: only because we haven't made the API for that yet18:13
*** stradling has quit IRC18:13
dolphmdstanek: we have it, it's just not dynamic18:13
dstanekdolphm: ++18:13
ayoungdstanek, please don't ask me to boil the ocean. All I want is a cup of coffee18:13
johnthetubaguyso I need to go eat and sleep... seems capabilities and delegation is the sticking point in the wider discussion here18:14
lbragstaddolphm dstanek which api is that?18:14
ayoungdstanek, in FreeIPA, I had a wonderful API for finding all this stuff out, down to the ability to read/write/list individual properties of objects.  But it was not standard LDAP, either18:14
dolphmlbragstad: GET / ... Accept: application/json-home18:15
dolphmlbragstad: returns you the list of available API operations18:15
dstanekayoung: there are lots of was to do this that are not terribly hard and sticks to a REST api18:15
lbragstadoh - got it18:15
dolphmall it has to do is respect policy18:15
ayoungdstanek, now go and implement them all, evenly, across all of the openstack services, including ones that use keystone but are not under the big tent18:16
ayoungdolphm, wy dont' we have that on /v3?18:17
dstanekayoung: to me that's not an argument to move away from our design principles.18:17
ayoungdstanek, 5 years with a broken system is my argument18:17
ayoungI can't solve it otherwise.18:17
ayoungand no one else seems to be trying18:17
dolphmayoung: i believe you can query / /v2.0/ or /v3/18:17
dstanekayoung: there has been progress in uniformly wanting a capabilities API18:17
ayoungdolphm, right, but/v4 does not have links to, say /v3/user /v3/groups etc18:18
dolphmdstanek: what's the difference between a capabilities API and json-home?18:18
*** lucasxu has joined #openstack-keystone18:18
dolphmayoung: i hope not18:18
ayoungjson-home is not very restful either18:18
ayoung dolphm why not?18:18
dstanekayoung: why is json home not restful?18:18
ayoungdolphm, why doesn't v3 tell us the links to the objects further down in the the tree18:19
dolphmayoung: if I ask a specific API version what it's capable of, then i would not expect an index of API operations on a different version18:19
ayoungdstanek, from / how do I get to json home?18:19
dstanekdolphm: i think primarily in adding the ability to narrow down capabilies or query for specific capabilites18:19
dstanek"can i delete VM 12345"18:19
dolphmayoung: GET / "Accept: application/json-home"18:19
ayoungdolphm, no, I mean /v3/users18:19
dstanekayoung: we need to use relationships and add links to things18:19
lbragstadIMO capabilities also factor in deployment configuration18:19
dolphmdstanek: wouldn't you be able to parse the json-home response for that information?18:19
*** Aqsa has quit IRC18:20
dolphmlbragstad: which json-home should do as well. if a piece of middleware is not loaded, it won't appear18:20
ayoungOK...so lets ignore the fact that all of us know keystone and could make *a* way to do this in Keystone18:20
johnthetubaguydolphm: FWIW, nova ended up ditching json-home (and swagger) as it wouldn't let us express our API, mostly because of the very non-REST-ful bits of our API18:20
dstanekdolphm: i doubt that you would put all of that detail in the response everytime18:20
lbragstadso - i think a list of capabilities could possibly be a a subset of json-home information18:20
ayoungjohnthetubaguy, like actions, right?18:20
dolphmjohnthetubaguy: sounds like a problem you should be able to microversion your way out of, if microversions work :P18:20
johnthetubaguyayoung: yep, all and all the other things we want to kill but can't18:20
ayoungPOST server/{id}/actions  is about as JSON RPC as you can get without actually doing JSON RPC18:21
johnthetubaguydolphm: we could, but it would drive a bus over our usrs18:21
ayoungjohnthetubaguy, so.. I didn't have an answer for that at first, but I think in a follow on spec, we could add support for a jq type path query.  I posted that in m,y latest fversion of the spec18:21
dstanekjohnthetubaguy: i thought that's what microversions did...18:21
dolphmjohnthetubaguy: what are microversions for if not running over users?18:21
lbragstadclosed; microversions are working as intended18:22
lbragstad:)18:22
ayoungjohnthetubaguy, see the follow on work section here https://review.openstack.org/#/c/452198/4/specs/keystone/pike/role-check-from-middleware.rst18:22
ayoungOK,  gotta ruin18:22
ayoungrun18:22
ayoungruin18:22
ayoungrune18:22
*** ayoung is now known as ayoung_dadmode18:22
dstanekthe endorsements for microversion would look like "I still can't feel my toes"18:22
johnthetubaguyayoung_dadmode: thats not a big worry for me, the big worries are in the comments18:23
*** ayoung_dadmode has quit IRC18:23
johnthetubaguypoints at this blog: https://dague.net/2015/06/05/the-nova-api-in-kilo-and-beyond-2/18:26
* johnthetubaguy runs for food18:26
*** harlowja has quit IRC18:33
*** stradling has joined #openstack-keystone18:38
*** hoonetorg has quit IRC18:51
*** stradling has quit IRC19:10
*** pid1 has joined #openstack-keystone19:13
*** pid1 has left #openstack-keystone19:13
*** voelzmo has joined #openstack-keystone19:25
openstackgerritGage Hugo proposed openstack/python-keystoneclient master: Remove pbr warnerrors in favor of sphinx check  https://review.openstack.org/44146819:33
*** shuyingya has joined #openstack-keystone19:40
*** stradling has joined #openstack-keystone19:41
*** shuyingya has quit IRC19:45
*** aunnam has joined #openstack-keystone19:50
*** aunnam has left #openstack-keystone19:52
*** voelzmo has quit IRC19:53
*** harlowja has joined #openstack-keystone19:58
*** pcaruana has quit IRC20:01
*** aojea has joined #openstack-keystone20:11
*** jamielennox is now known as jamielennox|away20:12
smccully@dstanek, were you able to take a look --> https://review.openstack.org/#/c/45258520:22
dstaneksmccully: no, but i can now20:25
smccullyok, thanks20:27
antwashsamueldmq : replied to your question https://review.openstack.org/#/c/450938/20:30
openstackgerritMerged openstack/python-keystoneclient master: Updated from global requirements  https://review.openstack.org/43935520:30
dstaneksmccully: so what currently happens if verify is True? no verification?20:34
dstanekor some builtin thing?20:35
smccullyCurrently when verify is True, Requests verifies the SSL Certificate against (apparently i learned this) some internal Requests CA Bundle20:37
smccullyBy explicitly setting the verify to a specefic CABundle.pem or CABundle Path containing the default OpenSSL system bundle, then the actual system bundle CA(s) are used to verify the SSL certificate20:38
smccullyUsing the system CABundle is at least in my opinion highly preferable, it was noted by @cmurphy that the Distro(s) actually patch python requests to use the System Bundle which works around this error when requests is installed from source or via pip20:40
smccullyThe problem as noted in the Bug report is that while perhaps even the overhwelming majority of the uses of keystoneauth the os-cacert option is explicitly read from configuration and passed, there are multiple points where it doesn't20:42
smccullyThe CLI commands being perhaps the most notable20:43
openstackgerritOpenStack Proposal Bot proposed openstack/keystonemiddleware master: Updated from global requirements  https://review.openstack.org/43931820:45
*** rcernin has quit IRC20:45
dstaneksmccully: ah, right i remember now20:46
*** stradling has quit IRC20:47
*** thorst has quit IRC20:50
*** thorst has joined #openstack-keystone20:51
*** hoonetorg has joined #openstack-keystone20:53
*** thorst has quit IRC20:55
*** itisha has quit IRC21:12
*** thorst has joined #openstack-keystone21:18
dstaneksmccully: i'm only about halfway through that requests thread21:19
dstaneksmccully: so how many projects don't properly allow a cert to be passed?21:22
*** thorst has quit IRC21:22
*** spilla has quit IRC21:23
*** thorst has joined #openstack-keystone21:53
*** aojea has quit IRC21:53
*** catintheroof has quit IRC21:54
*** chris_hultin is now known as chris_hultin|AWA22:01
*** chlong has quit IRC22:02
smccully@dstanek, I think its more of in certain cases, and I am not aware of all them I am sure. But the bug i submitted was Nova attaching a volume i.e. calling cinder22:04
*** harlowja has quit IRC22:05
lbragstadjamielennox|away would you be interested in giving https://review.openstack.org/#/c/452652/ a gander whenever you're available to do so?22:11
*** thorst has quit IRC22:12
*** jamielennox|away is now known as jamielennox22:13
*** lucasxu has quit IRC22:15
*** edmondsw has quit IRC22:22
*** edmondsw has joined #openstack-keystone22:24
*** edmondsw has quit IRC22:29
*** agrebennikov has quit IRC22:41
samueldmqantwash: hi22:48
samueldmqantwash: yes, I got that, but why did the exception changed ?22:48
samueldmqchange*22:48
*** RajPatel has joined #openstack-keystone22:57
*** thorst has joined #openstack-keystone22:59
openstackgerritRon De Rose proposed openstack/keystone-specs master: Access Keys  https://review.openstack.org/45041523:03
*** thorst has quit IRC23:04
openstackgerritRon De Rose proposed openstack/keystone-specs master: Access Keys  https://review.openstack.org/45041523:05
*** adriant has joined #openstack-keystone23:06
antwashsamueldmq : since we're checking the role first, we never get a chance to make it to this method https://github.com/openstack/keystone/blob/master/keystone/assignment/backends/sql.py#L85 -- which throws the RoleAssignmentNotFound exception23:06
samueldmqantwash: makes sense, thanks for clarifying23:06
antwashsamueldmq : you're welcome sam23:07
openstackgerritRichard Avelar proposed openstack/keystone master: Validate rolling upgrade is run in order  https://review.openstack.org/43744123:13
openstackgerritMerged openstack/keystone master: Refactor test_revoke to call check_token directly  https://review.openstack.org/45187423:15
openstackgerritAnthony Washington proposed openstack/keystone master: Move project endpoint to DocumentedRuleDefault  https://review.openstack.org/44927623:19
openstackgerritAnthony Washington proposed openstack/keystone master: Move region policies to DocumentedRuleDefault  https://review.openstack.org/44921323:22
*** lamt has quit IRC23:23
*** lamt has joined #openstack-keystone23:24
*** lamt has quit IRC23:24
*** RajPatel has quit IRC23:25
*** harlowja has joined #openstack-keystone23:25
openstackgerritAnthony Washington proposed openstack/keystone master: Move trust to DocumentedRuleDefault  https://review.openstack.org/44927823:26
openstackgerritMerged openstack/keystone master: Move and refactor test_by_domain_user  https://review.openstack.org/45278323:29
openstackgerritMerged openstack/keystone master: Move and refactor test_by_domain_project  https://review.openstack.org/45278823:29
openstackgerritMerged openstack/keystone master: Remove unnecessary processing when deleting grant.  https://review.openstack.org/45093823:29
openstackgerritMerged openstack/keystone master: Move protocol to DocumentedRuleDefault  https://review.openstack.org/44934523:29
openstackgerritAnthony Washington proposed openstack/keystone master: Move user policies to DocumentedRuleDefault  https://review.openstack.org/44924023:30
openstackgerritAnthony Washington proposed openstack/keystone master: Move user policies to DocumentedRuleDefault  https://review.openstack.org/44924023:30
openstackgerritMerged openstack/keystone master: Remove unused method _sample_data in test_revoke  https://review.openstack.org/45277223:30
openstackgerritMerged openstack/keystone master: Add sem-ver flag so pbr generates correct version  https://review.openstack.org/45342023:30
antwashsamueldmq: after the conversation earlier with morgan and stanek could you change this? https://review.openstack.org/#/c/449237/23:34
*** thorst has joined #openstack-keystone23:34
openstackgerritAnthony Washington proposed openstack/keystone master: Move role assignment to DocumentedRuleDefault  https://review.openstack.org/44925323:35
samueldmqantwash: is the failure unrelated ?23:36
samueldmqantwash: I am taking another look just to make sure23:37
antwashsamueldmq: not sure two 'Timeouts' and 1 'SnapshotNotFoundException'23:37
antwashsamueldmq: I'll do a recheck and see what happens after you look23:38
openstackgerritAnthony Washington proposed openstack/keystone master: Move mapping to DocumentedRuleDefault  https://review.openstack.org/44934123:40
*** gagehugo has quit IRC23:42
*** jamielennox is now known as jamielennox|away23:42
openstackgerritAnthony Washington proposed openstack/keystone master: Move access token to DocumentedRuleDefault  https://review.openstack.org/44926523:43
*** gagehugo has joined #openstack-keystone23:43
samueldmqantwash: couple more comments on https://review.openstack.org/#/c/44923723:44
*** jamielennox|away is now known as jamielennox23:45
openstackgerritAnthony Washington proposed openstack/keystone master: Move consumer to DocumentedRuleDefault  https://review.openstack.org/44926923:46
openstackgerritAnthony Washington proposed openstack/keystone master: Move consumer to DocumentedRuleDefault  https://review.openstack.org/44926923:46
*** thorst has quit IRC23:49
openstackgerritAnthony Washington proposed openstack/keystone master: Move endpoint group to DocumentedRuleDefault  https://review.openstack.org/44927323:54
lbragstadlooks like the next PTG will be in Denver - http://lists.openstack.org/pipermail/openstack-dev/2017-April/115046.html23:56
openstackgerritAnthony Washington proposed openstack/keystone master: Move role policies to DocumentedRuleDefault  https://review.openstack.org/44925123:57

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!