Package com.bytedesk.core.server
Class ServerRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<ServerEntity,ServerRequest,ServerResponse>
com.bytedesk.core.server.ServerRestService
@Service
public class ServerRestService
extends BaseRestService<ServerEntity,ServerRequest,ServerResponse>
REST service for server monitoring operations
Provides CRUD operations and business logic for server management
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Server statistics data class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.modelmapper.ModelMapper
private final ServerRepository
private final UidUtils
Fields inherited from class com.bytedesk.core.base.BaseRestService
authService
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconvertToResponse
(ServerEntity entity) create
(ServerRequest request) createServer
(ServerEntity serverEntity) Create server entity directlyprotected org.springframework.data.jpa.domain.Specification<ServerEntity>
createSpecification
(ServerRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现void
delete
(ServerRequest request) void
deleteByUid
(String uid) doSave
(ServerEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<ServerEntity>
executePageQuery
(org.springframework.data.jpa.domain.Specification<ServerEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现Find all serversfindByServerName
(String serverName) Find server by server namefindByStatus
(String status) Find servers by statusfindByType
(String type) Find servers by typeFind servers with high resource usagefindServersWithoutRecentHeartbeat
(int minutesThreshold) Find servers without recent heartbeatGet current server metrics (for self-monitoring)Get server statisticsprotected String
getUidFromRequest
(ServerRequest request) 从请求对象中获取UID的通用实现 使用反射调用getUid方法handleOptimisticLockingFailureException
(org.springframework.orm.ObjectOptimisticLockingFailureException e, ServerEntity entity) update
(ServerRequest request) updateHeartbeat
(String uid) Update server heartbeatupdateResourceUsage
(String uid, Double cpuUsage, Double memoryUsage, Double diskUsage) Update server resource usageupdateServer
(ServerEntity serverEntity) Update server entity directlyMethods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, queryByOrg, queryByUid, queryByUser, recover, save, setUserUidToRequest
-
Field Details
-
serverRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
-
Constructor Details
-
ServerRestService
public ServerRestService()
-
-
Method Details
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<ServerEntity> createSpecification(ServerRequest request) Description copied from class:BaseRestService
创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecification
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<ServerEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<ServerEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService
执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQuery
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
findByUid
@Cacheable(value="server", key="#uid", unless="#result==null") public Optional<ServerEntity> findByUid(String uid) - Specified by:
findByUid
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
create
- Specified by:
create
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
update
- Specified by:
update
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
deleteByUid
- Specified by:
deleteByUid
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
delete
- Specified by:
delete
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
getUidFromRequest
Description copied from class:BaseRestService
从请求对象中获取UID的通用实现 使用反射调用getUid方法- Overrides:
getUidFromRequest
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
doSave
Description copied from class:BaseRestService
子类实现具体的保存逻辑- Specified by:
doSave
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
handleOptimisticLockingFailureException
public ServerEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, ServerEntity entity) - Specified by:
handleOptimisticLockingFailureException
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-
findAllServers
Find all servers- Returns:
- List<ServerEntity>
-
findByType
Find servers by type- Parameters:
type
- server type- Returns:
- List<ServerEntity>
-
findByStatus
Find servers by status- Parameters:
status
- server status- Returns:
- List<ServerEntity>
-
findServersWithHighUsage
Find servers with high resource usage- Returns:
- List<ServerEntity>
-
findServersWithoutRecentHeartbeat
Find servers without recent heartbeat- Parameters:
minutesThreshold
- minutes threshold for heartbeat- Returns:
- List<ServerEntity>
-
updateHeartbeat
Update server heartbeat- Parameters:
uid
- server UID- Returns:
- updated server entity
-
updateResourceUsage
@Transactional public Optional<ServerEntity> updateResourceUsage(String uid, Double cpuUsage, Double memoryUsage, Double diskUsage) Update server resource usage- Parameters:
uid
- server UIDcpuUsage
- CPU usage percentagememoryUsage
- memory usage percentagediskUsage
- disk usage percentage- Returns:
- updated server entity
-
getCurrentServerMetrics
Get current server metrics (for self-monitoring)- Returns:
- ServerEntity with current metrics
-
findByServerName
Find server by server name- Parameters:
serverName
- server name- Returns:
- ServerEntity or null if not found
-
createServer
Create server entity directly- Parameters:
serverEntity
- server entity to create- Returns:
- created server entity
-
updateServer
Update server entity directly- Parameters:
serverEntity
- server entity to update- Returns:
- updated server entity
-
getServerStatistics
Get server statistics- Returns:
- ServerStatistics object
-
convertToResponse
- Specified by:
convertToResponse
in classBaseRestService<ServerEntity,
ServerRequest, ServerResponse>
-