# openstackclient/identity/v3/catalog.py:41-66
class ListCatalog(command.Lister):
def take_action(self, parsed_args):
# 1. 인증 확인
auth_ref = self.app.client_manager.auth_ref
# 2. Service Catalog 데이터 가져오기
data = auth_ref.service_catalog.catalog
# 3. 컬럼 정의
columns = ('Name', 'Type', 'Endpoints')
# 4. 데이터 포맷팅 및 반환
return (columns, formatted_data)
catalog show 실행흐름
# openstackclient/identity/v3/catalog.py:69-105
class ShowCatalog(command.ShowOne):
def take_action(self, parsed_args):
# 1. 인증 확인
auth_ref = self.app.client_manager.auth_ref
# 2. 서비스 이름/타입으로 검색
for service in auth_ref.service_catalog.catalog:
if (
service.get('name') == parsed_args.service
or service.get('type') == parsed_args.service
):
data = dict(service)
data['endpoints'] = EndpointsColumn(data['endpoints'])
# 3. 일치하는 서비스 데이터 포맷팅
# 4. 서비스 상세 정보 반환