It isn't possible in the config file. You have to do it via the rados constructor. You came to the correct conclusion.
On Mon, Aug 20, 2018, 2:59 AM Benjamin Cherian <benjamin.cher...@gmail.com> wrote: > Ok...after a bit more searching. I realized you can specify the username > directly in the constructor of the "Rados" object. I'm still not entirely > clear how one would do it through the config file, but this works for me as > well. > > import rados > cluster = rados.Rados(conffile="python_ceph.conf", rados_id="dms") > cluster.connect() # No exception when using keyring containing key for dms > user! > > Regards, > > Benjamin Cherian > > On Sun, Aug 19, 2018 at 9:55 PM, Benjamin Cherian < > benjamin.cher...@gmail.com> wrote: > >> Hi David, >> >> Thanks for the reply...I had thought there might be something simple like >> this, do you know what key I should use in the config file to specify the >> user? I didn't see anything related to user specification in the >> documentation. >> >> Thanks, >> Ben >> >> On Sun, Aug 19, 2018 at 8:02 PM, David Turner <drakonst...@gmail.com> >> wrote: >> >>> You are not specifying which user you are using. Your config file >>> specifies the keyring, but it's still trying to use the default user admin. >>> If you specify that in your python you'll be good to go. >>> >>> On Sun, Aug 19, 2018, 9:17 PM Benjamin Cherian < >>> benjamin.cher...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> I'm trying to write a simple test application using the Python 3 RADOS >>>> API. I've made a separate keyring for my application with the same >>>> permissions as the admin keyring, but I can't seem to use it to connect to >>>> my cluster. The only keyring that seems to work is the client.admin >>>> keyring. Does anyone have any experience with this issue? >>>> >>>> Cluster info: >>>> OS: Ubuntu 18.04.1 >>>> Ceph: Mimic 13.2.1 (from Ceph repository) >>>> >>>> Attempting to connect to the cluster using python3-rados or >>>> python-rados results in the following error: >>>> >>>> >>> import rados >>>> >>> cluster = rados.Rados(conffile="python_ceph.conf") >>>> >>> cluster.connect() >>>> Traceback (most recent call last): >>>> File "<stdin>", line 1, in <module> >>>> File "rados.pyx", line 895, in rados.Rados.connect >>>> File "rados.pyx", line 474, in rados.make_ex >>>> TypeError: InvalidArgumentError does not take keyword arguments >>>> >>>> Contents of python_ceph.conf: >>>> >>>> [global] >>>> cluster network = 0.0.0.0/0 >>>> fsid = 518403a0-6b6f-42b8-be99-e58788bee5c2 >>>> mon host = <redacted> >>>> mon initial members = <hostname of monitor> >>>> mon_allow_pool_delete = True >>>> osd crush chooseleaf type = 0 >>>> public network = 0.0.0.0/0 >>>> >>>> keyring = /etc/ceph/ceph.client.dms.keyring # Everything works ok if i >>>> use client.adming.keyring >>>> >>>> >>>> >>>> Output of ceph auth ls >>>> >>>> ... >>>> client.admin >>>> key: <Redacted> >>>> caps: [mds] allow * >>>> caps: [mgr] allow * >>>> caps: [mon] allow * >>>> caps: [osd] allow * >>>> ... >>>> client.dms >>>> key: <redacted, but matches contents of keyring file> >>>> caps: [mgr] allow * >>>> caps: [mon] allow * >>>> caps: [osd] allow * >>>> >>>> ... >>>> >>>> >>>> What's even more odd is that I can use client.dms keyring with the ceph >>>> command line program without issues... >>>> e.g., "ceph --user dms status" does not result in any errors has the >>>> same output as "ceph --user admin status" >>>> >>>> >>>> Does anyone have any thoughts on what could be causing this issue? >>>> >>>> >>>> Thanks, >>>> Ben >>>> _______________________________________________ >>>> ceph-users mailing list >>>> ceph-users@lists.ceph.com >>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com >>>> >>> >> >
_______________________________________________ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com