4주차 과제 - 김민규 (작성중)

기본 사용법


  • openstack catalog list 는 모든 서비스 목록을 조회하는 기능입니다.

  • opentstack catalog show는 특정서비스 상세 정보 조회하는 기능입니다.

openstack catalog list 상세 사용법


사용법

openstack catalog list [-h] [-f {csv,json,table,value,yaml}]
                              [-c COLUMN]
                              [--quote {all,minimal,none,nonnumeric}]
                              [--noindent] [--max-width <integer>]
                              [--fit-width] [--print-empty]
                              [--sort-column SORT_COLUMN]
                              [--sort-ascending | --sort-descending]

Json 형식으로 출력

  • openstack catalog list -f json

Yaml 형식으로 출력

  • openstack catalog list -f yaml

특정 컬럼만 선택해서 보기

  • openstack catalog list -c Name -c Type l
#result of openstack catalog list -c Name -c Type l
+-------------+----------------+
| Name        | Type           |
+-------------+----------------+
| cinder      | block-storage  |
| placement   | placement      |
| keystone    | identity       |
| nova        | compute        |
| glance      | image          |
| nova_legacy | compute_legacy |
| barbican    | key-manager    |
| neutron     | network        |
+-------------+----------------+

이름만 보기

  • openstack catalog list -f value -c Name
# result
cinder
placement
keystone
nova
glance
nova_legacy
barbican
neutron

openstack catalog show 상세 사용법


사용법

openstack catalog show [-h] [-f {json,shell,table,value,yaml}]
                              [-c COLUMN] [--noindent] [--prefix PREFIX]
                              [--max-width <integer>] [--fit-width]
                              [--print-empty]
                              <service>

서비스 타입으로 조회

  • openstack catalog show compute
  • openstack catalog show network
  • openstack catalog show identity

서비스 이름으로 조회

  • openstack catalog show nova
  • openstack catalog show neutron

JSON 형식으로 상세 정보 확인

  • openstack catalog show compute -f json

특정 필드만 추출

  • 엔드포인트만 추출: openstack catalog show compute -c endpoints
  • id / type만 추출: openstack catalog show compute -c id -c type

open catalog [CRUD] - 파일 위치


  python-openstackclient/
  └── openstackclient/
      └── identity/
          ├── v2_0/
          │   └── catalog.py    
          └── v3/
              └── catalog.py    

open catalog [CRUD]의 간단한 실행흐름


catalog list 실행 흐름

  # 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. 서비스 상세 정보 반환