Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package DGU_AI_LAB.admin_be.domain.requests.dto.response;

import DGU_AI_LAB.admin_be.domain.nodes.entity.Node;
import DGU_AI_LAB.admin_be.domain.portRequests.entity.PortRequests;
import DGU_AI_LAB.admin_be.domain.requests.entity.Request;
import lombok.Builder;

Expand All @@ -17,7 +18,8 @@ public record AcceptInfoResponseDTO(
Boolean gpu_required,
String gpu_group,
String server_type,
List<NodeDTO> gpu_nodes
List<NodeDTO> gpu_nodes,
List<ExtraPortDTO> extra_ports
) {
@Builder
public record NodeDTO(
Expand All @@ -27,7 +29,14 @@ public record NodeDTO(
Integer num_gpu
) {}

public static AcceptInfoResponseDTO fromEntity(Request request, List<Node> nodes) {
@Builder
public record ExtraPortDTO(
Integer internal_port,
Integer external_port,
String usage_purpose
) {}

public static AcceptInfoResponseDTO fromEntity(Request request, List<Node> nodes, List<PortRequests> portRequests) {
var image = request.getContainerImage();
var group = request.getResourceGroup();

Expand All @@ -40,6 +49,14 @@ public static AcceptInfoResponseDTO fromEntity(Request request, List<Node> nodes
.build()
).toList();

List<ExtraPortDTO> extraPortDTOList = portRequests.stream()
.map(portRequest -> ExtraPortDTO.builder()
.internal_port(portRequest.getInternalPort())
.external_port(portRequest.getPortNumber())
.usage_purpose(portRequest.getUsagePurpose())
.build()
).toList();

return AcceptInfoResponseDTO.builder()
.username(request.getUbuntuUsername())
.image(image.getImageName() + ":" + image.getImageVersion())
Expand All @@ -54,6 +71,7 @@ public static AcceptInfoResponseDTO fromEntity(Request request, List<Node> nodes
.gpu_group(group.getDescription())
.server_type(group.getServerName())
.gpu_nodes(nodeDTOList)
.extra_ports(extraPortDTOList)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import DGU_AI_LAB.admin_be.domain.nodes.entity.Node;
import DGU_AI_LAB.admin_be.domain.nodes.repository.NodeRepository;
import DGU_AI_LAB.admin_be.domain.portRequests.entity.PortRequests;
import DGU_AI_LAB.admin_be.domain.portRequests.repository.PortRequestRepository;
import DGU_AI_LAB.admin_be.domain.requests.dto.response.AcceptInfoResponseDTO;
import DGU_AI_LAB.admin_be.domain.requests.entity.Request;
import DGU_AI_LAB.admin_be.domain.requests.repository.RequestRepository;
Expand All @@ -23,6 +25,7 @@ public class ConfigRequestService {

private final RequestRepository requestRepository;
private final NodeRepository nodeRepository;
private final PortRequestRepository portRequestRepository;

/** ubuntu username 쀑볡 검사 */
@Transactional(readOnly = true)
Expand Down Expand Up @@ -56,8 +59,12 @@ public AcceptInfoResponseDTO getAcceptInfo(String username) {
.collect(Collectors.toList());
log.debug("쑰회된 λ…Έλ“œ λͺ©λ‘: {}", nodeNames);

// 포트 μš”μ²­ 정보 쑰회
List<PortRequests> portRequests = portRequestRepository.findByRequestRequestId(request.getRequestId());
log.debug("μš”μ²­ '{}'에 μ†ν•œ 포트 μš”μ²­ {}개λ₯Ό μ‘°νšŒν–ˆμŠ΅λ‹ˆλ‹€.", request.getRequestId(), portRequests.size());

// 응닡 DTO 생성 및 λ°˜ν™˜
AcceptInfoResponseDTO response = AcceptInfoResponseDTO.fromEntity(request, nodes);
AcceptInfoResponseDTO response = AcceptInfoResponseDTO.fromEntity(request, nodes, portRequests);
log.info("μ‚¬μš©μž '{}'에 λŒ€ν•œ AcceptInfoResponseDTO 생성을 μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€.", username);

return response;
Expand Down