Keystoneauth - keystoneclient으로부터 마이그레이션

Jmnote (토론 | 기여)님의 2024년 6월 23일 (일) 12:57 판 (→‎AccessInfo 객체)

1 개요

Migrating from keystoneclient
keystoneclient으로부터 마이그레이션

https://docs.openstack.org/keystoneauth/latest/migrating.html

2 인증 플러그인

2.1 플러그인 로딩

2.2 AccessInfo 객체

AccessInfo 객체는 토큰에 저장된 정보를 나타냅니다. keystoneclient에서는 이러한 객체들이 속성 접근자가 있는 토큰 데이터의 딕셔너리로 표현되었습니다. keystoneauth에서는 딕셔너리 인터페이스가 제거되고 속성 접근자만 사용할 수 있습니다.

생성 함수도 변경되었습니다. keystoneclient.access.AccessInfo.factory() 메소드는 제거되고 keystoneauth1.access.create()로 대체되었습니다.

2.3 단계별 마이그레이션 예시

requirements.txt에 keystoneauth1 추가

코드에서 다음과 같이 변경합니다:

-from keystoneclient import auth
+from keystoneauth1 import plugin

그에 따라:

-auth.BaseAuthPlugin
+plugin.BaseAuthPlugin

서비스 카탈로그를 가져오기 위해:

-from keystoneclient import service_catalog
+from keystoneauth1.access import service_catalog

서비스 카탈로그를 사용하여 URL을 가져오기 위해 endpoint_type 파라미터가 interface로 변경되었습니다:

-service_catalog.ServiceCatalogV2(sc).service_catalog.url_for(..., endpoint_type=interface)
+service_catalog.ServiceCatalogV2(sc).service_catalog.url_for(..., interface=interface)

세션 얻기:

-from keystoneclient import session
+from keystoneauth1 import loading as ks_loading

-_SESSION = session.Session.load_from_conf_options(
-auth_plugin = auth.load_from_conf_options(conf, NEUTRON_GROUP)
+_SESSION = ks_loading.load_session_from_conf_options(
+auth_plugin = ks_loading.load_auth_from_conf_options(conf, NEUTRON_GROUP)

테스트 목적으로 세션을 모킹하기:

-@mock.patch('keystoneclient.session.Session')
+@mock.patch('keystoneauth1.session.Session')

토큰 픽스처 임포트는 큰 변경이 필요하지 않습니다:

-from keystoneclient.fixture import V2Token
+from keystoneauth1.fixture import V2Token
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}