1141 Words

Openstack Issue その3―Horizon「どこかがおかしくなりました」

問題概要

OpenStack Victoria(Ussuri では起きませんでした)インストール後、権限の弱いユーザで VM の詳細情報を見ようとしたら、

Horizon「どこかがおかしくなりました

/var/log/apache2/error.logには次のようなエラーが出ていた

AttributeError: OS-EXT-SRV-ATTR:instance_name

参考

方針

  • 管理者権限をもつユーザからしか見ることのできない VM のOS-EXT-SRV-ATTRというプロパティを使おうとして内部エラーが起きているらしい

  • Bug #1905024 “Error when opening instance detailed view” : Bugs : OpenStack Dashboard (Horizon)によれば 新しいバージョン(18.6.3+)では修正済みだが、またもや apt でインストールされた Horizon は修正前のもの(18.6.2)だったので、 今回も手動でパッチ処理をおこなう方法で解決してみます

  • !Caution apt パッケージ管理下のソースコードを手動修正するので、もしかしたら何か不具合あるかもしれません

解決手順

Controller

  1. オリジナルコードのバックアップをとっておく

    #root user

    cd /usr/lib/python3/dist-packages/openstack_dashboard/api
    cp _nova.py _nova.py.bak
    
  2. /usr/lib/python3/dist-packages/openstack_dashboard/api/_nova.pyを修正する

    # ...
    # 88行目付近
    
        @property
        def has_extended_attrs(self):
            # ここに`None`を追加する
            # return any(getattr(self, attr) for attr in [
            return any(getattr(self, attr, None) for attr in [
                'OS-EXT-SRV-ATTR:instance_name', 'OS-EXT-SRV-ATTR:host',
                'OS-EXT-SRV-ATTR:hostname', 'OS-EXT-SRV-ATTR:kernel_id',
                'OS-EXT-SRV-ATTR:ramdisk_id', 'OS-EXT-SRV-ATTR:root_device_name',
                'OS-EXT-SRV-ATTR:root_device_name', 'OS-EXT-SRV-ATTR:user_data',
                'OS-EXT-SRV-ATTR:reservation_id', 'OS-EXT-SRV-ATTR:launch_index',
            ])
    
    # ...
    
  3. Apache2 再起動

    #root user

    systemctl restart apache2
    
  4. 解決確認

    • 権限の弱いユーザで VM の詳細情報を開けたら OK

関連記事一覧