필수 과제 제출합니다. 추가 과제는 도전 중입니다.
근데 이렇게 하는게 맞을까요? identity_client 객체를 통해 요청해서 User같은 객체를 받는게 더 직관적인 것 같은데.. 명세를 찾기가 쉽지 않네요.
take_action()
에 추가하여 구현하였습니다.
columns: tuple[str, ...] = (
'id',
'name',
'status',
'project_name', # added
'user_name', # added
)
column_headers: tuple[str, ...] = (
'ID',
'Name',
'Status',
'Project Name', # added
'User Name', # added
)
try:
auth_ref = identity_client.users.api.session.auth.auth_ref
current_username = auth_ref.username
print(f"Current authenticated user: {current_username}")
except Exception as e:
print(f"Failed to get current user: {e}")
current_username = "Unknown"
for s in data:
# Project Name - location.project.name 사용
if hasattr(s, 'location') and s.location and hasattr(s.location, 'project'):
s.project_name = s.location.project.name
else:
s.project_name = getattr(s, 'tenant_id', 'N/A')
# User Name - 현재 사용자명 사용
user_id = getattr(s, 'user_id', None)
if user_id == auth_ref.user_id:
s.user_name = current_username
else:
# 다른 사용자의 서버인 경우 ID만 표시
s.user_name = user_id if user_id else 'N/A'