Fabric: AttributeError: objek 'str' tidak memiliki atribut 'extend' saat menggunakan opsi connect_kwargs dan key_filename khusus

Dibuat pada 31 Agu 2019  ·  6Komentar  ·  Sumber: fabric/fabric

Saat menggunakan connect_kwargs dengan opsi key_filename , seperti:

    config = fabric.config.Config()
    print("Connecting with ssh/config")
    with fabric.Connection(
        host=instancePrivateIp,
        user='ec2-user',
        config=config,
        connect_kwargs={
            "key_filename": keyFileName,
        }) as c_instance:

Saya mendapatkan AttributeError :

  File "/home/dumontj/Projects/ami-builder/ami_builder/customization.py", line 26, in do_bash_customization
    "key_filename": keyFileName,
  File "/home/dumontj/.local/share/virtualenvs/ami-builder-jbdgQc96/lib/python3.7/site-packages/fabric/connection.py", line 450, in __init__
    self.connect_kwargs = self.resolve_connect_kwargs(connect_kwargs)
  File "/home/dumontj/.local/share/virtualenvs/ami-builder-jbdgQc96/lib/python3.7/site-packages/fabric/connection.py", line 490, in resolve_connect_kwargs
    connect_kwargs["key_filename"].extend(
AttributeError: 'str' object has no attribute 'extend'

Dokumentasi menentukan bahwa key_filename harus diberikan sebagai string, tetapi saya menemukan bahwa itu berfungsi jika Anda benar-benar memberikannya daftar:

    with fabric.Connection(
        host=instancePrivateIp,
        user='ec2-user',
        config=config,
        connect_kwargs={
            "key_filename": [keyFileName,],
        }) as c_instance:

Jika ini adalah sintaks yang diinginkan, saya dapat memperbarui dokumentasi melalui PR (lihat https://github.com/fabric/fabric/blob/2.0/fabric/connection.py#L234). Kalau tidak, saya bisa mengubah fabric/connection.py untuk memeriksa apakah sudah ada entri, lalu mengubahnya menjadi daftar jika perlu.

Komentar yang paling membantu

Saya melihat masalah yang sama pada 2.5. Namun, menggunakan daftar berfungsi.

Semua 6 komentar

Saya melihat masalah yang sama pada 2.5. Namun, menggunakan daftar berfungsi.

Permasalahan yang sama. Sepertinya itu bisa menjadi bug konyol bagi saya, jadi pin ke 2.4.0 sampai kita mendengar lebih banyak dari upstream.

Saya mendapatkan masalah yang sama ketika Host diatur ke nama DNS. Saat diatur ke IP, pengecualian tidak terjadi.
Misalnya:

{'host': '127.0.0.1', 'user': 'MyUser', 'connect_kwargs': {'key_filename': '/Users/MyUser/.ssh/MyPem.pem'}} # <- Works
{'host': 'some.dns.name', 'user': 'MyUser', 'connect_kwargs': {'key_filename': '/Users/MyUser/.ssh/MyPem.pem'}} # <- Doesn't work

face_caches[self.face_img_paths[i].stem] = wajah
AttributeError: objek 'str' tidak memiliki atribut 'batang'
saya mendapatkan kesalahan ini. adakah yang bisa menyarankan saya solusi?

Orang lain membuat PR untuk mengubah dokumen pada Sep 2019, tetapi belum bergabung (Feb 2020): #2014

Ini juga terjadi pada saya ... dan juga, saya pikir penting untuk dapat mengatur jika saya hanya ingin terhubung menggunakan key_filename yang disediakan, daripada menggunakan info ssh_config.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat