한글 버전
요약
OpenStack 연결 관리를 중앙화하기 위해 tools/base.py 모듈을 새로 만들었습니다. 각 도구에서 중복되던 연결 코드를 하나로 통합했습니다.
동기
기존 문제점:
nova_tools.py, glance_tools.py에서 동일한 연결 코드 반복
- 설정값 하드코딩 (클라우드명, 디버그 모드 등)
- 매번 새 연결 생성으로 성능 저하
해결책
새로 추가된 base.py
class OpenStackConnectionManager:
_connection = None
@classmethod
def get_connection(cls):
if cls._connection is None:
cls._connection = openstack.connect(cloud=config.MCP_CLOUD_NAME)
return cls._connection
def get_openstack_conn():
return OpenStackConnectionManager.get_connection()
변경된 도구들
# 기존
conn = openstack.connect(cloud="openstack")
# 변경 후
from .base import get_openstack_conn
conn = get_openstack_conn()
설정 개선
MCP_CLOUD_NAME: str = os.environ.get("CLOUD_NAME", "openstack")
MCP_DEBUG_MODE: bool = os.environ.get("DEBUG_MODE", "true").lower() == "true"
효과
- ⚡ 연결 재사용으로 성능 향상
- 🔄 코드 중복 제거
- ⚙️ 설정 변경이 한 곳에서만 가능
- 🚀 새 도구 추가 시 일관된 연결 방식 사용
주요 변경 파일
- ✅
tools/base.py - 새로 생성
- ✅
tools/nova_tools.py - 연결 로직 제거, base 사용
- ✅
tools/glance_tools.py - 새로 추가
- ✅
config.py - 타입 힌트 추가
- ✅ 테스트 파일들 - Mock 경로 수정
English Version
Summary
Created a new tools/base.py module to centralize OpenStack connection management. Unified duplicate connection code across different tools.
Motivation
Existing issues:
- Duplicate connection code in
nova_tools.py, glance_tools.py
- Hardcoded configuration values (cloud name, debug mode, etc.)
- Performance degradation from creating new connections every time
Solution
New base.py Module
class OpenStackConnectionManager:
_connection = None
@classmethod
def get_connection(cls):
if cls._connection is None:
cls._connection = openstack.connect(cloud=config.MCP_CLOUD_NAME)
return cls._connection
def get_openstack_conn():
return OpenStackConnectionManager.get_connection()
Updated Tools
# Before
conn = openstack.connect(cloud="openstack")
# After
from .base import get_openstack_conn
conn = get_openstack_conn()
Configuration Improvements
MCP_CLOUD_NAME: str = os.environ.get("CLOUD_NAME", "openstack")
MCP_DEBUG_MODE: bool = os.environ.get("DEBUG_MODE", "true").lower() == "true"
Benefits
- ⚡ Performance improvement through connection reuse
- 🔄 Eliminated code duplication
- ⚙️ Configuration changes in one place only
- 🚀 Consistent connection method for new tools
Major File Changes
- ✅
tools/base.py - Newly created
- ✅
tools/nova_tools.py - Removed connection logic, uses base
- ✅
tools/glance_tools.py - Newly added
- ✅
config.py - Added type hints
- ✅ Test files - Updated mock paths
한글 버전
요약
OpenStack 연결 관리를 중앙화하기 위해
tools/base.py모듈을 새로 만들었습니다. 각 도구에서 중복되던 연결 코드를 하나로 통합했습니다.동기
기존 문제점:
nova_tools.py,glance_tools.py에서 동일한 연결 코드 반복해결책
새로 추가된 base.py
변경된 도구들
설정 개선
효과
주요 변경 파일
tools/base.py- 새로 생성tools/nova_tools.py- 연결 로직 제거, base 사용tools/glance_tools.py- 새로 추가config.py- 타입 힌트 추가English Version
Summary
Created a new
tools/base.pymodule to centralize OpenStack connection management. Unified duplicate connection code across different tools.Motivation
Existing issues:
nova_tools.py,glance_tools.pySolution
New base.py Module
Updated Tools
Configuration Improvements
Benefits
Major File Changes
tools/base.py- Newly createdtools/nova_tools.py- Removed connection logic, uses basetools/glance_tools.py- Newly addedconfig.py- Added type hints