There's not an efficient API query to determine that today. Internally, the
API server maintains a reverse index of username to group names by watching
updates to the Group API objects

On Thu, Jun 16, 2016 at 4:03 PM, Marc Boorshtein <mboorsht...@gmail.com>
wrote:

> oh, if the groups field on the user is deprecated how would I know what
> groups a specific user has?
>
> On Thu, Jun 16, 2016 at 3:57 PM, Jordan Liggitt <jligg...@redhat.com>
> wrote:
>
>> Your command looks correct. Specifying groups directly on a user via the
>> groups field is deprecated. `oc get group cluster-administrators -o yaml`
>> would show that your command is effective.
>>
>> When a user makes an API request, their effective groups are determined
>> by combining the names of the Group objects containing their username, the
>> contents of the deprecated groups field on their User object, and virtual
>> groups like "system:authenticated".
>>
>> On Thu, Jun 16, 2016 at 3:53 PM, Marc Boorshtein <mboorsht...@gmail.com>
>> wrote:
>>
>>> I can't seem to add a user to a group.  I have a user:
>>>
>>> $ curl -k -v -XGET  -H "User-Agent: oc/v1.1.2 (darwin/amd64)
>>> openshift/2711160" -H "Authorization: Bearer
>>> PDqIrEiOTqtwJvHDcTB-snC5FpcpnCz5fIrz7S6ORCI"
>>> https://openshift.rheldemo.lan:8443/oapi/v1/users/0b126172-33e9-11e6-9c91-525400d4fbc4
>>> *   Trying 192.168.2.191...
>>> * Connected to openshift.rheldemo.lan (192.168.2.191) port 8443 (#0)
>>> * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
>>> * Server certificate: 172.30.0.1
>>> * Server certificate: openshift-signer@1465933076
>>> > GET /oapi/v1/users/0b126172-33e9-11e6-9c91-525400d4fbc4 HTTP/1.1
>>> > Host: openshift.rheldemo.lan:8443
>>> > Accept: */*
>>> > User-Agent: oc/v1.1.2 (darwin/amd64) openshift/2711160
>>> > Authorization: Bearer PDqIrEiOTqtwJvHDcTB-snC5FpcpnCz5fIrz7S6ORCI
>>> >
>>> < HTTP/1.1 200 OK
>>> < Cache-Control: no-store
>>> < Content-Type: application/json
>>> < Date: Thu, 16 Jun 2016 19:47:05 GMT
>>> < Content-Length: 381
>>> <
>>> {"kind":"User","apiVersion":"v1","metadata":{"name":"0b126172-33e9-11e6-9c91-525400d4fbc4","selfLink":"/oapi/v1/users/0b126172-33e9-11e6-9c91-525400d4fbc4","uid":"4c403e86-33f4-11e6-b368-fa163ef48e94","resourceVersion":"17244","creationTimestamp":"2016-06-16T18:58:22Z"},"fullName":"OpenShift
>>> Admin","identities":["unison_ldap:0b126172-33e9-11e6-9c91-525400d4fbc4"],"groups":null}
>>>
>>> then I run oadm to add the user to a group:
>>>
>>> [root@openshift ~]# oadm --loglevel 9 groups add-users
>>> cluster-administrators 0b126172-33e9-11e6-9c91-525400d4fbc4
>>>
>>>
>>> ================================================================================
>>> ATTENTION: You are running oadm via a wrapper around 'docker run
>>> openshift/origin:v1.3.0-alpha.1'.
>>> This wrapper is intended only to be used to bootstrap an environment.
>>> Please
>>> install client tools on another host once you have granted cluster-admin
>>> privileges to a user.
>>> See https://docs.openshift.org/latest/cli_reference/get_started_cli.html
>>>
>>> =================================================================================
>>>
>>> Usage of loopback devices is strongly discouraged for production use.
>>> Either use `--storage-opt dm.thinpooldev` or use `--storage-opt
>>> dm.no_warn_on_loop_devices=true` to suppress this warning.
>>> I0616 19:50:26.085449       1 loader.go:242] Config loaded from file
>>> /root/.kube/config
>>> I0616 19:50:26.087794       1 round_trippers.go:299] curl -k -v -XGET
>>>  -H "Accept: application/json, */*" -H "User-Agent: oadm/v1.3.0
>>> (linux/amd64) kubernetes/6e83535"
>>> https://openshift.rheldemo.lan:8443/api
>>> I0616 19:50:26.125647       1 round_trippers.go:318] GET
>>> https://openshift.rheldemo.lan:8443/api 200 OK in 37 milliseconds
>>> I0616 19:50:26.125669       1 round_trippers.go:324] Response Headers:
>>> I0616 19:50:26.125677       1 round_trippers.go:327]     Date: Thu, 16
>>> Jun 2016 19:50:26 GMT
>>> I0616 19:50:26.125685       1 round_trippers.go:327]     Content-Length:
>>> 135
>>> I0616 19:50:26.125691       1 round_trippers.go:327]     Cache-Control:
>>> no-store
>>> I0616 19:50:26.125696       1 round_trippers.go:327]     Content-Type:
>>> application/json
>>> I0616 19:50:26.125765       1 request.go:870] Response Body:
>>> {"kind":"APIVersions","versions":["v1"],"serverAddressByClientCIDRs":[{"clientCIDR":"
>>> 0.0.0.0/0","serverAddress":"192.168.100.6:443"}]}
>>> I0616 19:50:26.126056       1 round_trippers.go:299] curl -k -v -XGET
>>>  -H "Accept: application/json, */*" -H "User-Agent: oadm/v1.3.0
>>> (linux/amd64) kubernetes/6e83535"
>>> https://openshift.rheldemo.lan:8443/apis
>>> I0616 19:50:26.126838       1 round_trippers.go:318] GET
>>> https://openshift.rheldemo.lan:8443/apis 200 OK in 0 milliseconds
>>> I0616 19:50:26.126866       1 round_trippers.go:324] Response Headers:
>>> I0616 19:50:26.126872       1 round_trippers.go:327]     Content-Type:
>>> application/json
>>> I0616 19:50:26.126877       1 round_trippers.go:327]     Date: Thu, 16
>>> Jun 2016 19:50:26 GMT
>>> I0616 19:50:26.126883       1 round_trippers.go:327]     Content-Length:
>>> 775
>>> I0616 19:50:26.126888       1 round_trippers.go:327]     Cache-Control:
>>> no-store
>>> I0616 19:50:26.126922       1 request.go:870] Response Body:
>>> {"kind":"APIGroupList","groups":[{"name":"autoscaling","versions":[{"groupVersion":"autoscaling/v1","version":"v1"}],"preferredVersion":{"groupVersion":"autoscaling/v1","version":"v1"},"serverAddressByClientCIDRs":[{"clientCIDR":"
>>> 0.0.0.0/0","serverAddress":"192.168.100.6:443
>>> "}]},{"name":"batch","versions":[{"groupVersion":"batch/v1","version":"v1"}],"preferredVersion":{"groupVersion":"batch/v1","version":"v1"},"serverAddressByClientCIDRs":[{"clientCIDR":"
>>> 0.0.0.0/0","serverAddress":"192.168.100.6:443
>>> "}]},{"name":"extensions","versions":[{"groupVersion":"extensions/v1beta1","version":"v1beta1"}],"preferredVersion":{"groupVersion":"extensions/v1beta1","version":"v1beta1"},"serverAddressByClientCIDRs":[{"clientCIDR":"
>>> 0.0.0.0/0","serverAddress":"192.168.100.6:443"}]}]}
>>> I0616 19:50:26.132811       1 round_trippers.go:299] curl -k -v -XGET
>>>  -H "User-Agent: oadm/v1.3.0 (linux/amd64) openshift/6e83535" -H "Accept:
>>> application/json, */*" https://openshift.rheldemo.lan:8443/oapi
>>> I0616 19:50:26.133409       1 round_trippers.go:318] GET
>>> https://openshift.rheldemo.lan:8443/oapi 200 OK in 0 milliseconds
>>> I0616 19:50:26.133428       1 round_trippers.go:324] Response Headers:
>>> I0616 19:50:26.133433       1 round_trippers.go:327]     Cache-Control:
>>> no-store
>>> I0616 19:50:26.133439       1 round_trippers.go:327]     Content-Type:
>>> application/json
>>> I0616 19:50:26.133450       1 round_trippers.go:327]     Date: Thu, 16
>>> Jun 2016 19:50:26 GMT
>>> I0616 19:50:26.133455       1 round_trippers.go:327]     Content-Length:
>>> 93
>>> I0616 19:50:26.133489       1 request.go:870] Response Body:
>>> {"kind":"APIVersions","apiVersion":"v1","versions":["v1"],"serverAddressByClientCIDRs":null}
>>> I0616 19:50:26.133763       1 round_trippers.go:299] curl -k -v -XGET
>>>  -H "Accept: application/json, */*" -H "User-Agent: oadm/v1.3.0
>>> (linux/amd64) openshift/6e83535"
>>> https://openshift.rheldemo.lan:8443/oapi/v1/groups/cluster-administrators
>>> I0616 19:50:26.135065       1 round_trippers.go:318] GET
>>> https://openshift.rheldemo.lan:8443/oapi/v1/groups/cluster-administrators
>>> 200 OK in 1 milliseconds
>>> I0616 19:50:26.135084       1 round_trippers.go:324] Response Headers:
>>> I0616 19:50:26.135090       1 round_trippers.go:327]     Cache-Control:
>>> no-store
>>> I0616 19:50:26.135095       1 round_trippers.go:327]     Content-Type:
>>> application/json
>>> I0616 19:50:26.135101       1 round_trippers.go:327]     Date: Thu, 16
>>> Jun 2016 19:50:26 GMT
>>> I0616 19:50:26.135106       1 round_trippers.go:327]     Content-Length:
>>> 295
>>> I0616 19:50:26.135143       1 request.go:870] Response Body:
>>> {"kind":"Group","apiVersion":"v1","metadata":{"name":"cluster-administrators","selfLink":"/oapi/v1/groups/cluster-administrators","uid":"52a7c5fa-3339-11e6-93e7-fa163ef48e94","resourceVersion":"17554","creationTimestamp":"2016-06-15T20:39:57Z"},"users":["0b126172-33e9-11e6-9c91-525400d4fbc4"]}
>>> I0616 19:50:26.135544       1 request.go:555] Request Body:
>>> {"kind":"Group","apiVersion":"v1","metadata":{"name":"cluster-administrators","selfLink":"/oapi/v1/groups/cluster-administrators","uid":"52a7c5fa-3339-11e6-93e7-fa163ef48e94","resourceVersion":"17554","creationTimestamp":"2016-06-15T20:39:57Z"},"users":["0b126172-33e9-11e6-9c91-525400d4fbc4"]}
>>> I0616 19:50:26.135594       1 round_trippers.go:299] curl -k -v -XPUT
>>>  -H "Content-Type: application/json" -H "User-Agent: oadm/v1.3.0
>>> (linux/amd64) openshift/6e83535" -H "Accept: application/json, */*"
>>> https://openshift.rheldemo.lan:8443/oapi/v1/groups/cluster-administrators
>>> I0616 19:50:26.137081       1 round_trippers.go:318] PUT
>>> https://openshift.rheldemo.lan:8443/oapi/v1/groups/cluster-administrators
>>> 200 OK in 1 milliseconds
>>> I0616 19:50:26.137102       1 round_trippers.go:324] Response Headers:
>>> I0616 19:50:26.137109       1 round_trippers.go:327]     Date: Thu, 16
>>> Jun 2016 19:50:26 GMT
>>> I0616 19:50:26.137114       1 round_trippers.go:327]     Content-Length:
>>> 295
>>> I0616 19:50:26.137120       1 round_trippers.go:327]     Cache-Control:
>>> no-store
>>> I0616 19:50:26.137125       1 round_trippers.go:327]     Content-Type:
>>> application/json
>>> I0616 19:50:26.137161       1 request.go:870] Response Body:
>>> {"kind":"Group","apiVersion":"v1","metadata":{"name":"cluster-administrators","selfLink":"/oapi/v1/groups/cluster-administrators","uid":"52a7c5fa-3339-11e6-93e7-fa163ef48e94","resourceVersion":"17554","creationTimestamp":"2016-06-15T20:39:57Z"},"users":["0b126172-33e9-11e6-9c91-525400d4fbc4"]}
>>>
>>> Then I check the user again:
>>>
>>> $ curl -k -v -XGET  -H "User-Agent: oc/v1.1.2 (darwin/amd64)
>>> openshift/2711160" -H "Authorization: Bearer
>>> PDqIrEiOTqtwJvHDcTB-snC5FpcpnCz5fIrz7S6ORCI"
>>> https://openshift.rheldemo.lan:8443/oapi/v1/users/0b126172-33e9-11e6-9c91-525400d4fbc4
>>> *   Trying 192.168.2.191...
>>> * Connected to openshift.rheldemo.lan (192.168.2.191) port 8443 (#0)
>>> * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
>>> * Server certificate: 172.30.0.1
>>> * Server certificate: openshift-signer@1465933076
>>> > GET /oapi/v1/users/0b126172-33e9-11e6-9c91-525400d4fbc4 HTTP/1.1
>>> > Host: openshift.rheldemo.lan:8443
>>> > Accept: */*
>>> > User-Agent: oc/v1.1.2 (darwin/amd64) openshift/2711160
>>> > Authorization: Bearer PDqIrEiOTqtwJvHDcTB-snC5FpcpnCz5fIrz7S6ORCI
>>> >
>>> < HTTP/1.1 200 OK
>>> < Cache-Control: no-store
>>> < Content-Type: application/json
>>> < Date: Thu, 16 Jun 2016 19:52:56 GMT
>>> < Content-Length: 381
>>> <
>>> {"kind":"User","apiVersion":"v1","metadata":{"name":"0b126172-33e9-11e6-9c91-525400d4fbc4","selfLink":"/oapi/v1/users/0b126172-33e9-11e6-9c91-525400d4fbc4","uid":"4c403e86-33f4-11e6-b368-fa163ef48e94","resourceVersion":"17244","creationTimestamp":"2016-06-16T18:58:22Z"},"fullName":"OpenShift
>>> Admin","identities":["unison_ldap:0b126172-33e9-11e6-9c91-525400d4fbc4"],"groups":null}
>>>
>>> Notice that the user's groups are still null....am I missing something?
>>>
>>> Thanks
>>> Marc
>>>
>>> _______________________________________________
>>> users mailing list
>>> users@lists.openshift.redhat.com
>>> http://lists.openshift.redhat.com/openshiftmm/listinfo/users
>>>
>>>
>>
>
_______________________________________________
users mailing list
users@lists.openshift.redhat.com
http://lists.openshift.redhat.com/openshiftmm/listinfo/users

Reply via email to