Skip to content

Commit a5e20ad

Browse files
authored
Merge pull request #6 from TAMULib/sprint1-b03253-monitor
Sprint1 b03253 monitor
2 parents 740e2b0 + 53979d7 commit a5e20ad

16 files changed

Lines changed: 175 additions & 114 deletions

src/main/java/edu/tamu/app/controller/ServiceController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public ApiResponse getService(@ApiVariable Long id) {
5353
@Auth(role = "ROLE_SERVICE_MANAGER")
5454
@ApiValidation(business = { @ApiValidation.Business(value = CREATE), @ApiValidation.Business(value = EXISTS) })
5555
public ApiResponse createService(@ApiValidatedModel Service service) {
56-
service = serviceRepo.create(service.getName(), service.getStatus(), service.getIsPublic(), service.getOnShortList());
56+
service = serviceRepo.create(service.getName(), service.getStatus(), service.getIsAuto(), service.getIsPublic(), service.getOnShortList(),service.getServiceUrl());
5757
simpMessagingTemplate.convertAndSend("/channel/service", new ApiResponse(SUCCESS, serviceRepo.findOne(service.getId())));
5858
return new ApiResponse(SUCCESS, service);
5959
}

src/main/java/edu/tamu/app/controller/StatusController.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import edu.tamu.app.model.OverallStatus;
44
import edu.tamu.app.service.AppRoleService;
5-
import edu.tamu.app.service.OverallStatusService;
5+
import edu.tamu.app.service.MonitorService;
66
import edu.tamu.framework.aspect.annotation.ApiCredentials;
77
import edu.tamu.framework.aspect.annotation.ApiMapping;
88
import edu.tamu.framework.aspect.annotation.Auth;
@@ -19,22 +19,22 @@
1919
public class StatusController {
2020

2121
@Autowired
22-
OverallStatusService overallStatusService;
22+
MonitorService monitorService;
2323

2424
@Autowired
2525
AppRoleService appRoleService;
2626

2727
@ApiMapping("/overall-full")
2828
@Auth(role = "ROLE_STAFF")
2929
public ApiResponse overallFull(@ApiCredentials Credentials credentials) {
30-
OverallStatus overallStatus = overallStatusService.getOverallStatusFull();
30+
OverallStatus overallStatus = monitorService.getOverallStatus();
3131
return new ApiResponse(SUCCESS, overallStatus);
3232
}
3333

3434
@ApiMapping("/overall-public")
3535
@Auth(role = "ROLE_ANONYMOUS")
3636
public ApiResponse overallPublic(@ApiCredentials Credentials credentials) {
37-
OverallStatus overallStatus = overallStatusService.getOverallStatusPublic();
37+
OverallStatus overallStatus = monitorService.getOverallStatusPublic();
3838
return new ApiResponse(SUCCESS, overallStatus);
3939
}
4040

src/main/java/edu/tamu/app/enums/Status.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
public enum Status {
44

5-
UP, DOWN, AUTO;
5+
UP, DOWN;
66
}

src/main/java/edu/tamu/app/job/UpdateOveralStatuses.java renamed to src/main/java/edu/tamu/app/job/UpdateServiceStatuses.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
package edu.tamu.app.job;
22

3+
import static edu.tamu.framework.enums.ApiResponseType.SUCCESS;
4+
35
import org.springframework.beans.factory.annotation.Autowired;
46
import org.springframework.messaging.simp.SimpMessagingTemplate;
57
import org.springframework.scheduling.annotation.Scheduled;
68
import org.springframework.stereotype.Service;
79

8-
import edu.tamu.app.service.OverallStatusService;
10+
import edu.tamu.app.service.MonitorService;
911
import edu.tamu.framework.model.ApiResponse;
1012

11-
import static edu.tamu.framework.enums.ApiResponseType.SUCCESS;
12-
1313
@Service
14-
public class UpdateOveralStatuses {
14+
public class UpdateServiceStatuses {
1515

1616
@Autowired
17-
OverallStatusService overallStatusService;
17+
MonitorService monitorService;
1818

1919
@Autowired
2020
SimpMessagingTemplate simpMessagingTemplate;
2121

22-
@Scheduled(fixedRate=(1 * 30 * 1000))
22+
@Scheduled(fixedRate=(10*60*1000))
2323
public void updateOveralStatuses() {
24-
overallStatusService.updateStatuses();
24+
monitorService.updateAll();
2525

26-
simpMessagingTemplate.convertAndSend("/channel/status/overall-full", new ApiResponse(SUCCESS, overallStatusService.getOverallStatusFull()));
27-
simpMessagingTemplate.convertAndSend("/channel/status/overall-public", new ApiResponse(SUCCESS, overallStatusService.getOverallStatusPublic()));
26+
simpMessagingTemplate.convertAndSend("/channel/status/overall-full", new ApiResponse(SUCCESS, monitorService.getOverallStatus()));
27+
simpMessagingTemplate.convertAndSend("/channel/status/overall-public", new ApiResponse(SUCCESS, monitorService.getOverallStatusPublic()));
2828

2929
}
3030

src/main/java/edu/tamu/app/model/Service.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ public class Service extends BaseEntity {
3838
@Column(nullable = false, unique = false)
3939
private Status status;
4040

41+
@Column(nullable = false)
42+
private boolean isAuto;
43+
4144
@Column(nullable = true, unique = true)
4245
private String serviceUrl;
4346

@@ -57,12 +60,14 @@ public Service() {
5760
setAliases(new ArrayList<String>());
5861
}
5962

60-
public Service(String name, Status status, Boolean isPublic, Boolean onShortList) {
63+
public Service(String name, Status status, Boolean isAuto, Boolean isPublic, Boolean onShortList, String serviceUrl) {
6164
this();
6265
setName(name);
6366
setStatus(status);
67+
setIsAuto(isAuto);
6468
setIsPublic(isPublic);
6569
setOnShortList(onShortList);
70+
setServiceUrl(serviceUrl);
6671
}
6772

6873
public String getName() {
@@ -81,11 +86,14 @@ public void setStatus(Status status) {
8186
this.status = status;
8287
}
8388

84-
public boolean isCurrentlyUp() {
85-
//TODO: Implement this method to return true, false or the resolution of 'auto'
86-
return true;
89+
public Boolean getIsAuto() {
90+
return isAuto;
8791
}
88-
92+
93+
public void setIsAuto(Boolean isAuto) {
94+
this.isAuto = isAuto;
95+
}
96+
8997
public String getServiceUrl() {
9098
return serviceUrl;
9199
}

src/main/java/edu/tamu/app/model/repo/ServiceRepo.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44

55
import org.springframework.data.jpa.repository.JpaRepository;
66

7+
import edu.tamu.app.enums.Status;
78
import edu.tamu.app.model.Service;
89
import edu.tamu.app.model.repo.custom.ServiceRepoCustom;
910

1011
public interface ServiceRepo extends JpaRepository<Service, Long>, ServiceRepoCustom {
1112

1213
public List<Service> findByIsPublic(Boolean isPublic);
14+
public List<Service> findByIsAuto(Boolean isAuto);
15+
public Long countByStatus(Status status);
16+
public Long countByStatusAndIsPublic(Status status, Boolean isPublic);
1317
}

src/main/java/edu/tamu/app/model/repo/custom/ServiceRepoCustom.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55

66
public interface ServiceRepoCustom {
77

8-
public Service create(String name, Status status, Boolean isPublic, Boolean onShortList);
8+
public Service create(String name, Status status, Boolean isAuto, Boolean isPublic, Boolean onShortList, String serviceUrl);
99

1010
}

src/main/java/edu/tamu/app/model/repo/impl/ServiceRepoImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class ServiceRepoImpl implements ServiceRepoCustom {
1313
ServiceRepo serviceRepo;
1414

1515
@Override
16-
public Service create(String name, Status status, Boolean isPublic, Boolean onShortList) {
17-
return serviceRepo.save(new Service(name, status, isPublic, onShortList));
16+
public Service create(String name, Status status, Boolean isAuto, Boolean isPublic, Boolean onShortList, String serviceUrl) {
17+
return serviceRepo.save(new Service(name, status, isAuto, isPublic, onShortList, serviceUrl));
1818
}
1919
}

src/main/java/edu/tamu/app/model/validation/ServiceValidator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,13 @@ public ServiceValidator() {
1515
String statusProperty = "status";
1616
this.addInputValidator(new InputValidator(InputValidationType.required, "Service requires an enum status", statusProperty, true));
1717

18+
String isAutoProperty = "isAuto";
19+
this.addInputValidator(new InputValidator(InputValidationType.required, "Service required a Boolean indicating whether it is automatically managed", isAutoProperty, true));
20+
1821
String isPublicProperty = "isPublic";
19-
this.addInputValidator(new InputValidator(InputValidationType.required, "Service required an Boolean indicating whether it is public", isPublicProperty, true));
22+
this.addInputValidator(new InputValidator(InputValidationType.required, "Service required a Boolean indicating whether it is public", isPublicProperty, true));
2023

2124
String onShortListProperty = "onShortList";
22-
this.addInputValidator(new InputValidator(InputValidationType.required, "Service required an Boolean indicating whether it is on the short list", onShortListProperty, true));
25+
this.addInputValidator(new InputValidator(InputValidationType.required, "Service required a Boolean indicating whether it is on the short list", onShortListProperty, true));
2326
}
2427
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package edu.tamu.app.service;
2+
3+
import edu.tamu.app.model.OverallStatus;
4+
5+
public interface MonitorService {
6+
public void updateAll();
7+
public OverallStatus getOverallStatus();
8+
public OverallStatus getOverallStatusPublic();
9+
}

0 commit comments

Comments
 (0)