File tree 4 files changed +60
-0
lines changed
core/src/main/java/org/zstack/core/externalservice
externalservice/src/main/java/org/zstack/externalservice/cronjob
header/src/main/java/org/zstack/header/core/external/service 4 files changed +60
-0
lines changed Original file line number Diff line number Diff line change 1
1
package org .zstack .core .externalservice ;
2
2
3
+ import org .zstack .header .core .external .service .ExternalServiceCapabilities ;
4
+
3
5
public interface ExternalService {
4
6
String getName ();
5
7
@@ -10,4 +12,8 @@ public interface ExternalService {
10
12
void restart ();
11
13
12
14
boolean isAlive ();
15
+
16
+ ExternalServiceCapabilities getExternalServiceCapabilities ();
17
+
18
+ void reload ();
13
19
}
Original file line number Diff line number Diff line change
1
+ package org .zstack .core .externalservice ;
2
+
3
+ import org .zstack .header .core .external .service .ExternalServiceCapabilities ;
4
+
5
+ public class ExternalServiceCapabilitiesBuilder extends ExternalServiceCapabilities {
6
+ public static ExternalServiceCapabilitiesBuilder build () {
7
+ return new ExternalServiceCapabilitiesBuilder ();
8
+ }
9
+
10
+ public ExternalServiceCapabilitiesBuilder reloadConfig (boolean reloadConfig ) {
11
+ setReloadConfig (reloadConfig );
12
+ return this ;
13
+ }
14
+ }
Original file line number Diff line number Diff line change 4
4
import org .apache .commons .lang .StringUtils ;
5
5
import org .zstack .core .Platform ;
6
6
import org .zstack .core .externalservice .AbstractLocalExternalService ;
7
+ import org .zstack .header .core .external .service .ExternalServiceCapabilities ;
8
+ import org .zstack .core .externalservice .ExternalServiceCapabilitiesBuilder ;
7
9
import org .zstack .header .errorcode .OperationFailureException ;
8
10
import org .zstack .header .exception .CloudRuntimeException ;
9
11
import org .zstack .utils .Bash ;
17
19
import java .util .Set ;
18
20
19
21
public class CronJobImpl extends AbstractLocalExternalService implements CronJob {
22
+ ExternalServiceCapabilities capabilities = ExternalServiceCapabilitiesBuilder
23
+ .build ()
24
+ .reloadConfig (true );
25
+
20
26
@ Override
21
27
protected String [] getCommandLineKeywords () {
22
28
return new String [] {"crond" , "-n" };
@@ -48,6 +54,27 @@ public boolean isAlive() {
48
54
return getPID () != null ;
49
55
}
50
56
57
+ @ Override
58
+ public ExternalServiceCapabilities getExternalServiceCapabilities () {
59
+ return capabilities ;
60
+ }
61
+
62
+ @ Override
63
+ public void reload () {
64
+ if (!isAlive ()) {
65
+ throw new OperationFailureException (operr ("crond is not running" ));
66
+ }
67
+
68
+ new Bash () {
69
+ @ Override
70
+ protected void scripts () {
71
+ setE ();
72
+
73
+ run ("service crond reload" );
74
+ }
75
+ }.execute ();
76
+ }
77
+
51
78
@ Override
52
79
public void addJob (String job ) {
53
80
if (!isAlive ()) {
Original file line number Diff line number Diff line change
1
+ package org .zstack .header .core .external .service ;
2
+
3
+ public class ExternalServiceCapabilities {
4
+ private boolean reloadConfig = false ;
5
+
6
+ public boolean isReloadConfig () {
7
+ return reloadConfig ;
8
+ }
9
+
10
+ public void setReloadConfig (boolean reloadConfig ) {
11
+ this .reloadConfig = reloadConfig ;
12
+ }
13
+ }
You can’t perform that action at this time.
0 commit comments