Skip to content

Commit 7016a63

Browse files
committed
adding support for unless-stopped restart policy
1 parent f9fdc39 commit 7016a63

4 files changed

Lines changed: 24 additions & 1 deletion

File tree

src/main/java/com/github/dockerjava/api/model/RestartPolicy.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,13 @@ public static RestartPolicy onFailureRestart(int maximumRetryCount) {
7070
return new RestartPolicy(maximumRetryCount, "on-failure");
7171
}
7272

73+
/**
74+
* Restart the container unless it has been stopped
75+
*/
76+
public static RestartPolicy unlessStoppedRestart() {
77+
return new RestartPolicy(0, "unless-stopped");
78+
}
79+
7380
public Integer getMaximumRetryCount() {
7481
return maximumRetryCount;
7582
}
@@ -99,6 +106,10 @@ public static RestartPolicy parse(String serialized) throws IllegalArgumentExcep
99106
return alwaysRestart();
100107
}
101108

109+
if ("unless-stopped".equals(name)) {
110+
return unlessStoppedRestart();
111+
}
112+
102113
if ("on-failure".equals(name)) {
103114
int count = 0;
104115
if (parts.length == 2) {

src/test/java/com/github/dockerjava/api/model/RestartPolicy_ParsingTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ public void alwaysRestart() throws Exception {
1616
assertEquals(RestartPolicy.parse("always"), RestartPolicy.alwaysRestart());
1717
}
1818

19+
@Test
20+
public void unlessStoppedRestart() throws Exception {
21+
assertEquals(RestartPolicy.parse("unless-stopped"), RestartPolicy.unlessStoppedRestart());
22+
}
23+
1924
@Test
2025
public void onFailureRestart() throws Exception {
2126
assertEquals(RestartPolicy.parse("on-failure"), RestartPolicy.onFailureRestart(0));

src/test/java/com/github/dockerjava/api/model/RestartPolicy_SerializingTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ public void alwaysRestart() throws Exception {
2727
assertEquals(json, "{\"MaximumRetryCount\":0,\"Name\":\"always\"}");
2828
}
2929

30+
@Test
31+
// --restart unless-stopped
32+
public void unlessStoppedRestart() throws Exception {
33+
String json = objectMapper.writeValueAsString(RestartPolicy.unlessStoppedRestart());
34+
assertEquals(json, "{\"MaximumRetryCount\":0,\"Name\":\"unless-stopped\"}");
35+
}
36+
3037
@Test
3138
// --restart on-failure
3239
public void onFailureRestart() throws Exception {

src/test/java/com/github/dockerjava/api/model/RestartPolicy_toStringTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class RestartPolicy_toStringTest {
99

1010
@DataProvider(name = "input")
1111
public Object[][] restartPolicies() {
12-
return new Object[][] { {"no"}, {"always"}, {"on-failure"}, {"on-failure:2"}};
12+
return new Object[][] { {"no"}, {"always"}, {"unless-stopped"}, {"on-failure"}, {"on-failure:2"}};
1313
}
1414

1515
@Test(dataProvider = "input")

0 commit comments

Comments
 (0)