Skip to content

Commit 52c689d

Browse files
committed
Fix comments
1 parent 492d215 commit 52c689d

File tree

7 files changed

+28
-93
lines changed

7 files changed

+28
-93
lines changed

multiapps-controller-persistence/src/main/java/org/cloudfoundry/multiapps/controller/persistence/query/ApplicationShutdownQuery.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ public interface ApplicationShutdownQuery extends Query<ApplicationShutdown, App
1515
ApplicationShutdownQuery shutdownStatus(ApplicationShutdown.Status shutdownStatus);
1616

1717
ApplicationShutdownQuery startedAt(Date startedAt);
18+
19+
ApplicationShutdownQuery startedAtBefore(Date startedAt);
1820
}

multiapps-controller-persistence/src/main/java/org/cloudfoundry/multiapps/controller/persistence/query/impl/ApplicationShutdownQueryImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,16 @@ public ApplicationShutdownQuery shutdownStatus(ApplicationShutdown.Status shutdo
6363
return this;
6464
}
6565

66+
@Override
67+
public ApplicationShutdownQuery startedAtBefore(Date startedAt) {
68+
queryCriteria.addRestriction(ImmutableQueryAttributeRestriction.<Date> builder()
69+
.attribute(AttributeNames.STARTED_AT)
70+
.condition(getCriteriaBuilder()::lessThan)
71+
.value(startedAt)
72+
.build());
73+
return this;
74+
}
75+
6676
@Override
6777
public ApplicationShutdownQuery startedAt(Date startedAt) {
6878
queryCriteria.addRestriction(ImmutableQueryAttributeRestriction.builder()

multiapps-controller-persistence/src/test/java/org/cloudfoundry/multiapps/controller/persistence/services/ApplicationShutdownServiceTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@ void testQueryByStartedAt() {
9898
testQueryByCriteria((query, applicationShutdown) -> query.startedAt(applicationShutdown.getStartedAt()), 2, false);
9999
}
100100

101+
@Test
102+
void testQueryByStartedAtBefore() {
103+
testQueryByCriteria((query, applicationShutdown) -> query.startedAtBefore(applicationShutdown.getStartedAt()), 0, false);
104+
}
105+
101106
private interface ApplicationShutdownQueryBuilder {
102107
ApplicationShutdownQuery build(ApplicationShutdownQuery applicationShutdownQuery, ApplicationShutdown applicationShutdown);
103108
}
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package org.cloudfoundry.multiapps.controller.process.jobs;
22

33
import java.text.MessageFormat;
4+
import java.time.Instant;
45
import java.time.LocalDateTime;
5-
import java.util.List;
6+
import java.util.Date;
67

78
import jakarta.inject.Named;
8-
import org.cloudfoundry.multiapps.controller.persistence.dto.ApplicationShutdown;
99
import org.cloudfoundry.multiapps.controller.persistence.services.ApplicationShutdownService;
1010
import org.cloudfoundry.multiapps.controller.process.Messages;
11-
import org.cloudfoundry.multiapps.controller.shutdown.client.util.ShutdownUtil;
1211
import org.slf4j.Logger;
1312
import org.slf4j.LoggerFactory;
1413

1514
@Named
1615
public class LeftoverApplicationShutdownCleaner implements Cleaner {
1716

1817
private static final Logger LOGGER = LoggerFactory.getLogger(LeftoverApplicationShutdownCleaner.class);
18+
private static final int ONE_DAY_IN_SECONDS = 86400;
1919

2020
private final ApplicationShutdownService applicationShutdownService;
2121

@@ -25,28 +25,13 @@ public LeftoverApplicationShutdownCleaner(ApplicationShutdownService application
2525

2626
@Override
2727
public void execute(LocalDateTime expirationTime) {
28-
List<ApplicationShutdown> leftoverApplicationShutdowns = getApplicationShutdownsScheduledForMoreThanADay();
29-
30-
if (leftoverApplicationShutdowns.isEmpty()) {
31-
LOGGER.info(Messages.NO_LEFTOVER_APPLICATION_SHUTDOWNS);
32-
return;
33-
}
34-
35-
deleteLeftoverApplicationShutdowns(leftoverApplicationShutdowns);
36-
LOGGER.info(MessageFormat.format(Messages.DELETED_LEFTOVER_APPLICATION_SHUTDOWNS, leftoverApplicationShutdowns.size()));
37-
}
28+
Instant timeNow = Instant.now();
29+
Instant secondsAfterStartedDate = timeNow.minusSeconds(ONE_DAY_IN_SECONDS);
3830

39-
private List<ApplicationShutdown> getApplicationShutdownsScheduledForMoreThanADay() {
40-
List<ApplicationShutdown> applicationShutdowns = applicationShutdownService.createQuery()
41-
.list();
42-
return applicationShutdowns.stream()
43-
.filter(ShutdownUtil::isApplicationShutdownScheduledForMoreThanADay)
44-
.toList();
45-
}
31+
int countOfDeletedApplicationShutdowns = applicationShutdownService.createQuery()
32+
.startedAtBefore(Date.from(secondsAfterStartedDate))
33+
.delete();
4634

47-
private void deleteLeftoverApplicationShutdowns(List<ApplicationShutdown> leftoverApplicationShutdowns) {
48-
leftoverApplicationShutdowns.forEach(applicationShutdown -> applicationShutdownService.createQuery()
49-
.id(applicationShutdown.getId())
50-
.delete());
35+
LOGGER.info(MessageFormat.format(Messages.DELETED_LEFTOVER_APPLICATION_SHUTDOWNS, countOfDeletedApplicationShutdowns));
5136
}
5237
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
package org.cloudfoundry.multiapps.controller.process.jobs;
22

3-
import java.time.Instant;
43
import java.time.LocalDateTime;
5-
import java.util.Date;
6-
import java.util.List;
7-
import java.util.UUID;
84

9-
import org.cloudfoundry.multiapps.controller.persistence.dto.ApplicationShutdown;
10-
import org.cloudfoundry.multiapps.controller.persistence.dto.ImmutableApplicationShutdown;
115
import org.cloudfoundry.multiapps.controller.persistence.query.impl.ApplicationShutdownQueryImpl;
126
import org.cloudfoundry.multiapps.controller.persistence.services.ApplicationShutdownService;
137
import org.junit.jupiter.api.BeforeEach;
@@ -16,7 +10,6 @@
1610
import org.mockito.MockitoAnnotations;
1711

1812
import static org.mockito.ArgumentMatchers.any;
19-
import static org.mockito.Mockito.times;
2013
import static org.mockito.Mockito.verify;
2114
import static org.mockito.Mockito.when;
2215

@@ -38,45 +31,12 @@ void setUp() throws Exception {
3831
when(applicationShutdownService.createQuery()).thenReturn(applicationShutdownQuery);
3932
}
4033

41-
@Test
42-
void testExecuteWithoutScheduledApplications() {
43-
when(applicationShutdownQuery.list()).thenReturn(List.of());
44-
leftoverApplicationShutdownCleaner.execute(LocalDateTime.now());
45-
verify(applicationShutdownService).createQuery();
46-
verify(applicationShutdownQuery).list();
47-
}
48-
49-
@Test
50-
void testExecuteWithScheduledApplicationButNoLeftovers() {
51-
ApplicationShutdown applicationShutdown = createApplicationShutdown(Date.from(Instant.now()));
52-
when(applicationShutdownQuery.list()).thenReturn(List.of(applicationShutdown));
53-
leftoverApplicationShutdownCleaner.execute(LocalDateTime.now());
54-
verify(applicationShutdownService).createQuery();
55-
verify(applicationShutdownQuery).list();
56-
}
57-
5834
@Test
5935
void testExecuteWithLeftoverApplications() {
60-
Date timeBeforeTwoDays = new Date(1738061834);
61-
ApplicationShutdown applicationShutdown = createApplicationShutdown(timeBeforeTwoDays);
62-
when(applicationShutdownQuery.list()).thenReturn(List.of(applicationShutdown));
63-
when(applicationShutdownQuery.id(any())).thenReturn(applicationShutdownQuery);
36+
when(applicationShutdownQuery.startedAtBefore(any())).thenReturn(applicationShutdownQuery);
6437

6538
leftoverApplicationShutdownCleaner.execute(LocalDateTime.now());
6639

67-
verify(applicationShutdownService, times(2)).createQuery();
68-
verify(applicationShutdownQuery).list();
6940
verify(applicationShutdownQuery).delete();
7041
}
71-
72-
private ApplicationShutdown createApplicationShutdown(Date startedAt) {
73-
return ImmutableApplicationShutdown.builder()
74-
.applicationInstanceIndex(0)
75-
.applicationId(UUID.randomUUID()
76-
.toString())
77-
.id(UUID.randomUUID()
78-
.toString())
79-
.startedAt(startedAt)
80-
.build();
81-
}
8242
}

multiapps-controller-shutdown-client/src/main/java/org/cloudfoundry/multiapps/controller/shutdown/client/util/ShutdownUtil.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ private ShutdownUtil() {
1717
private static final Logger LOGGER = LoggerFactory.getLogger(ShutdownUtil.class);
1818

1919
public static final int TIMEOUT_IN_SECONDS = 600; //10 minutes
20-
public static final int DAY_IN_SECONDS = 86400; //1 day
2120

2221
public static boolean areThereUnstoppedInstances(List<ApplicationShutdown> shutdownInstances) {
2322
return shutdownInstances.stream()
@@ -26,17 +25,9 @@ public static boolean areThereUnstoppedInstances(List<ApplicationShutdown> shutd
2625
}
2726

2827
public static boolean isTimeoutExceeded(ApplicationShutdown applicationShutdown) {
29-
return isTimeExceeded(applicationShutdown, TIMEOUT_IN_SECONDS);
30-
}
31-
32-
public static boolean isApplicationShutdownScheduledForMoreThanADay(ApplicationShutdown applicationShutdown) {
33-
return isTimeExceeded(applicationShutdown, DAY_IN_SECONDS);
34-
}
35-
36-
private static boolean isTimeExceeded(ApplicationShutdown applicationShutdown, int seconds) {
3728
Instant secondsAfterStartedDate = Instant.from(applicationShutdown.getStartedAt()
3829
.toInstant())
39-
.plusSeconds(seconds);
30+
.plusSeconds(TIMEOUT_IN_SECONDS);
4031
Instant timeNow = Instant.now();
4132
return timeNow.isAfter(secondsAfterStartedDate);
4233
}

multiapps-controller-shutdown-client/src/test/java/org/cloudfoundry/multiapps/controller/shutdown/client/util/ShutdownUtilTest.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -52,24 +52,6 @@ void testIsTimeoutExceededWithTimeOutNotExceeded() {
5252
assertFalse(ShutdownUtil.isTimeoutExceeded(applicationShutdownInstance));
5353
}
5454

55-
@Test
56-
void testIsApplicationShutdownScheduledForMoreThanADay() {
57-
Instant timeBeforeTenMinutes = Instant.now()
58-
.minusSeconds(ShutdownUtil.DAY_IN_SECONDS);
59-
ApplicationShutdown applicationShutdownInstance = createApplicationShutdownInstance(true, Date.from(timeBeforeTenMinutes));
60-
61-
assertTrue(ShutdownUtil.isApplicationShutdownScheduledForMoreThanADay(applicationShutdownInstance));
62-
}
63-
64-
@Test
65-
void testIsApplicationShutdownScheduledForMoreThanADayWithTimeOutNotExceeded() {
66-
Instant timeBeforeTenMinutes = Instant.now()
67-
.minusSeconds(TIMEOUT_IN_SECONDS);
68-
ApplicationShutdown applicationShutdownInstance = createApplicationShutdownInstance(true, Date.from(timeBeforeTenMinutes));
69-
70-
assertFalse(ShutdownUtil.isApplicationShutdownScheduledForMoreThanADay(applicationShutdownInstance));
71-
}
72-
7355
private ApplicationShutdown createApplicationShutdownInstance(boolean isInstanceStopped, Date startedAt) {
7456
return ImmutableApplicationShutdown.builder()
7557
.id(UUID.randomUUID()

0 commit comments

Comments
 (0)