This commit is contained in:
@ -5,7 +5,9 @@ from rest_framework.decorators import action
|
|||||||
from .models import AnsibleTask
|
from .models import AnsibleTask
|
||||||
from .serializers import AnsibleTaskSerializer, AnsibleTaskDetailSerializer
|
from .serializers import AnsibleTaskSerializer, AnsibleTaskDetailSerializer
|
||||||
from .services import run_ansible_job, get_ssh_key_from_auth_server
|
from .services import run_ansible_job, get_ssh_key_from_auth_server
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class AnsibleTaskViewSet(viewsets.ModelViewSet):
|
class AnsibleTaskViewSet(viewsets.ModelViewSet):
|
||||||
serializer_class = AnsibleTaskSerializer
|
serializer_class = AnsibleTaskSerializer
|
||||||
@ -13,6 +15,7 @@ class AnsibleTaskViewSet(viewsets.ModelViewSet):
|
|||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
# ✅ 현재 로그인한 사용자의 email로 필터
|
# ✅ 현재 로그인한 사용자의 email로 필터
|
||||||
|
logger.info(f"[🔐 조회] user={self.request.user.email}")
|
||||||
return AnsibleTask.objects.filter(author_email=self.request.user.email).order_by("-created_at")
|
return AnsibleTask.objects.filter(author_email=self.request.user.email).order_by("-created_at")
|
||||||
|
|
||||||
def get_serializer_class(self):
|
def get_serializer_class(self):
|
||||||
@ -26,6 +29,8 @@ class AnsibleTaskViewSet(viewsets.ModelViewSet):
|
|||||||
|
|
||||||
# ✅ author_email 저장
|
# ✅ author_email 저장
|
||||||
task = serializer.save(author_email=request.user.email)
|
task = serializer.save(author_email=request.user.email)
|
||||||
|
logger.info(f"[🔐 저장 완료] user={request.user.email}, task_id={task.id}"
|
||||||
|
)
|
||||||
return Response(self.get_serializer(task).data, status=status.HTTP_201_CREATED)
|
return Response(self.get_serializer(task).data, status=status.HTTP_201_CREATED)
|
||||||
# try:
|
# try:
|
||||||
# token = request.headers.get("Authorization", "").replace("Bearer ", "")
|
# token = request.headers.get("Authorization", "").replace("Bearer ", "")
|
||||||
@ -42,6 +47,12 @@ class AnsibleTaskViewSet(viewsets.ModelViewSet):
|
|||||||
token = request.headers.get("Authorization", "").replace("Bearer ", "")
|
token = request.headers.get("Authorization", "").replace("Bearer ", "")
|
||||||
ssh_key = get_ssh_key_from_auth_server(token)
|
ssh_key = get_ssh_key_from_auth_server(token)
|
||||||
run_ansible_job(task, ssh_key)
|
run_ansible_job(task, ssh_key)
|
||||||
|
logger.info(f"[🔐 저장 완료] user={user.email}, key_name={key_name}, 암호화 길이={len(encrypted_key)}")
|
||||||
|
logger.info(f"[🔐 SSH 암호화 성공] user={user.email}, key_name={key_name}, 암호화 길이={len(encrypted_key)}")
|
||||||
|
|
||||||
return Response(self.get_serializer(task).data)
|
return Response(self.get_serializer(task).data)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
logger.exception("[❌ SSH 암호화 실패]")
|
||||||
|
logger.error(f"작업 실행 실패: {str(e)}")
|
||||||
|
|
||||||
return Response({"error": f"작업 실행 실패: {str(e)}"}, status=500)
|
return Response({"error": f"작업 실행 실패: {str(e)}"}, status=500)
|
||||||
|
@ -95,15 +95,12 @@ LOGGING = {
|
|||||||
'level': 'WARNING', # 보안 관련 경고
|
'level': 'WARNING', # 보안 관련 경고
|
||||||
'propagate': False,
|
'propagate': False,
|
||||||
},
|
},
|
||||||
# mattermost send message log 너무 많이 나와서 조정
|
|
||||||
'apscheduler': {
|
|
||||||
'handlers': ['console'],
|
|
||||||
'level': 'WARNING', # INFO 로그 안 보이게 함 | 'CRITICAL'로 맞추면 사실상 아무것도 안 찍힘
|
|
||||||
'propagate': False,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if DEBUG:
|
||||||
|
LOGGING['loggers']['django.db.backends']['level'] = 'DEBUG'
|
||||||
|
|
||||||
AUTH_VERIFY_URL = os.environ.get('AUTH_VERIFY_URL', 'NONE')
|
AUTH_VERIFY_URL = os.environ.get('AUTH_VERIFY_URL', 'NONE')
|
||||||
|
|
||||||
ALLOWED_HOSTS = ["*"]
|
ALLOWED_HOSTS = ["*"]
|
||||||
|
Reference in New Issue
Block a user