Skip to content

Commit f5459df

Browse files
committed
<feature>[core]: add resnotify webhook SDK and test support
Add uninstallEntityLifeCycleCallback to DatabaseFacade interface. Generate SDK action classes and ApiHelper methods for resnotify webhook subscription CRUD APIs. Change-Id: I9191952ca0a0959644bc2d90d539a818cf13d30a
1 parent 67acc0a commit f5459df

15 files changed

Lines changed: 749 additions & 0 deletions

core/src/main/java/org/zstack/core/db/DatabaseFacade.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,6 @@ public interface DatabaseFacade {
8484
String getDbVersion();
8585

8686
void installEntityLifeCycleCallback(Class entityClass, EntityEvent evt, EntityLifeCycleCallback cb);
87+
88+
void uninstallEntityLifeCycleCallback(Class entityClass, EntityEvent evt, EntityLifeCycleCallback cb);
8789
}

sdk/src/main/java/SourceClassMap.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,10 @@ public class SourceClassMap {
872872
put("org.zstack.zwatch.monitorgroup.entity.MonitorGroupTemplateRefInventory", "org.zstack.sdk.zwatch.monitorgroup.entity.MonitorGroupTemplateRefInventory");
873873
put("org.zstack.zwatch.monitorgroup.entity.MonitorGroupTemplateRefVO", "org.zstack.sdk.zwatch.monitorgroup.entity.MonitorGroupTemplateRefVO");
874874
put("org.zstack.zwatch.monitorgroup.entity.MonitorTemplateInventory", "org.zstack.sdk.zwatch.monitorgroup.entity.MonitorTemplateInventory");
875+
put("org.zstack.zwatch.resnotify.ResNotifySubscriptionInventory", "org.zstack.sdk.zwatch.resnotify.ResNotifySubscriptionInventory");
876+
put("org.zstack.zwatch.resnotify.ResNotifySubscriptionState", "org.zstack.sdk.zwatch.resnotify.ResNotifySubscriptionState");
877+
put("org.zstack.zwatch.resnotify.ResNotifyType", "org.zstack.sdk.zwatch.resnotify.ResNotifyType");
878+
put("org.zstack.zwatch.resnotify.ResNotifyWebhookRefInventory", "org.zstack.sdk.zwatch.resnotify.ResNotifyWebhookRefInventory");
875879
put("org.zstack.zwatch.ruleengine.ComparisonOperator", "org.zstack.sdk.zwatch.ruleengine.ComparisonOperator");
876880
put("org.zstack.zwatch.thirdparty.entity.SNSEndpointThirdpartyAlertHistoryInventory", "org.zstack.sdk.zwatch.thirdparty.entity.SNSEndpointThirdpartyAlertHistoryInventory");
877881
put("org.zstack.zwatch.thirdparty.entity.ThirdpartyOriginalAlertInventory", "org.zstack.sdk.zwatch.thirdparty.entity.ThirdpartyOriginalAlertInventory");
@@ -1748,6 +1752,10 @@ public class SourceClassMap {
17481752
put("org.zstack.sdk.zwatch.monitorgroup.entity.MonitorGroupTemplateRefInventory", "org.zstack.zwatch.monitorgroup.entity.MonitorGroupTemplateRefInventory");
17491753
put("org.zstack.sdk.zwatch.monitorgroup.entity.MonitorGroupTemplateRefVO", "org.zstack.zwatch.monitorgroup.entity.MonitorGroupTemplateRefVO");
17501754
put("org.zstack.sdk.zwatch.monitorgroup.entity.MonitorTemplateInventory", "org.zstack.zwatch.monitorgroup.entity.MonitorTemplateInventory");
1755+
put("org.zstack.sdk.zwatch.resnotify.ResNotifySubscriptionInventory", "org.zstack.zwatch.resnotify.ResNotifySubscriptionInventory");
1756+
put("org.zstack.sdk.zwatch.resnotify.ResNotifySubscriptionState", "org.zstack.zwatch.resnotify.ResNotifySubscriptionState");
1757+
put("org.zstack.sdk.zwatch.resnotify.ResNotifyType", "org.zstack.zwatch.resnotify.ResNotifyType");
1758+
put("org.zstack.sdk.zwatch.resnotify.ResNotifyWebhookRefInventory", "org.zstack.zwatch.resnotify.ResNotifyWebhookRefInventory");
17511759
put("org.zstack.sdk.zwatch.ruleengine.ComparisonOperator", "org.zstack.zwatch.ruleengine.ComparisonOperator");
17521760
put("org.zstack.sdk.zwatch.thirdparty.entity.SNSEndpointThirdpartyAlertHistoryInventory", "org.zstack.zwatch.thirdparty.entity.SNSEndpointThirdpartyAlertHistoryInventory");
17531761
put("org.zstack.sdk.zwatch.thirdparty.entity.ThirdpartyOriginalAlertInventory", "org.zstack.zwatch.thirdparty.entity.ThirdpartyOriginalAlertInventory");
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package org.zstack.sdk.zwatch.resnotify;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
import org.zstack.sdk.*;
6+
7+
public class DeleteResNotifySubscriptionAction extends AbstractAction {
8+
9+
private static final HashMap<String, Parameter> parameterMap = new HashMap<>();
10+
11+
private static final HashMap<String, Parameter> nonAPIParameterMap = new HashMap<>();
12+
13+
public static class Result {
14+
public ErrorCode error;
15+
public org.zstack.sdk.zwatch.resnotify.DeleteResNotifySubscriptionResult value;
16+
17+
public Result throwExceptionIfError() {
18+
if (error != null) {
19+
throw new ApiException(
20+
String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode)
21+
);
22+
}
23+
24+
return this;
25+
}
26+
}
27+
28+
@Param(required = true, nonempty = false, nullElements = false, emptyString = true, noTrim = false)
29+
public java.lang.String uuid;
30+
31+
@Param(required = false)
32+
public java.lang.String deleteMode = "Permissive";
33+
34+
@Param(required = false)
35+
public java.util.List systemTags;
36+
37+
@Param(required = false)
38+
public java.util.List userTags;
39+
40+
@Param(required = false)
41+
public String sessionId;
42+
43+
@Param(required = false)
44+
public String accessKeyId;
45+
46+
@Param(required = false)
47+
public String accessKeySecret;
48+
49+
@Param(required = false)
50+
public String requestIp;
51+
52+
@NonAPIParam
53+
public long timeout = -1;
54+
55+
@NonAPIParam
56+
public long pollingInterval = -1;
57+
58+
59+
private Result makeResult(ApiResult res) {
60+
Result ret = new Result();
61+
if (res.error != null) {
62+
ret.error = res.error;
63+
return ret;
64+
}
65+
66+
org.zstack.sdk.zwatch.resnotify.DeleteResNotifySubscriptionResult value = res.getResult(org.zstack.sdk.zwatch.resnotify.DeleteResNotifySubscriptionResult.class);
67+
ret.value = value == null ? new org.zstack.sdk.zwatch.resnotify.DeleteResNotifySubscriptionResult() : value;
68+
69+
return ret;
70+
}
71+
72+
public Result call() {
73+
ApiResult res = ZSClient.call(this);
74+
return makeResult(res);
75+
}
76+
77+
public void call(final Completion<Result> completion) {
78+
ZSClient.call(this, new InternalCompletion() {
79+
@Override
80+
public void complete(ApiResult res) {
81+
completion.complete(makeResult(res));
82+
}
83+
});
84+
}
85+
86+
protected Map<String, Parameter> getParameterMap() {
87+
return parameterMap;
88+
}
89+
90+
protected Map<String, Parameter> getNonAPIParameterMap() {
91+
return nonAPIParameterMap;
92+
}
93+
94+
protected RestInfo getRestInfo() {
95+
RestInfo info = new RestInfo();
96+
info.httpMethod = "DELETE";
97+
info.path = "/zwatch/resnotify/subscriptions/{uuid}";
98+
info.needSession = true;
99+
info.needPoll = true;
100+
info.parameterName = "";
101+
return info;
102+
}
103+
104+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.zstack.sdk.zwatch.resnotify;
2+
3+
4+
5+
public class DeleteResNotifySubscriptionResult {
6+
7+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package org.zstack.sdk.zwatch.resnotify;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
import org.zstack.sdk.*;
6+
7+
public class QueryResNotifySubscriptionAction extends QueryAction {
8+
9+
private static final HashMap<String, Parameter> parameterMap = new HashMap<>();
10+
11+
private static final HashMap<String, Parameter> nonAPIParameterMap = new HashMap<>();
12+
13+
public static class Result {
14+
public ErrorCode error;
15+
public org.zstack.sdk.zwatch.resnotify.QueryResNotifySubscriptionResult value;
16+
17+
public Result throwExceptionIfError() {
18+
if (error != null) {
19+
throw new ApiException(
20+
String.format("error[code: %s, description: %s, details: %s, globalErrorCode: %s]", error.code, error.description, error.details, error.globalErrorCode)
21+
);
22+
}
23+
24+
return this;
25+
}
26+
}
27+
28+
29+
30+
private Result makeResult(ApiResult res) {
31+
Result ret = new Result();
32+
if (res.error != null) {
33+
ret.error = res.error;
34+
return ret;
35+
}
36+
37+
org.zstack.sdk.zwatch.resnotify.QueryResNotifySubscriptionResult value = res.getResult(org.zstack.sdk.zwatch.resnotify.QueryResNotifySubscriptionResult.class);
38+
ret.value = value == null ? new org.zstack.sdk.zwatch.resnotify.QueryResNotifySubscriptionResult() : value;
39+
40+
return ret;
41+
}
42+
43+
public Result call() {
44+
ApiResult res = ZSClient.call(this);
45+
return makeResult(res);
46+
}
47+
48+
public void call(final Completion<Result> completion) {
49+
ZSClient.call(this, new InternalCompletion() {
50+
@Override
51+
public void complete(ApiResult res) {
52+
completion.complete(makeResult(res));
53+
}
54+
});
55+
}
56+
57+
protected Map<String, Parameter> getParameterMap() {
58+
return parameterMap;
59+
}
60+
61+
protected Map<String, Parameter> getNonAPIParameterMap() {
62+
return nonAPIParameterMap;
63+
}
64+
65+
protected RestInfo getRestInfo() {
66+
RestInfo info = new RestInfo();
67+
info.httpMethod = "GET";
68+
info.path = "/zwatch/resnotify/subscriptions";
69+
info.needSession = true;
70+
info.needPoll = false;
71+
info.parameterName = "";
72+
return info;
73+
}
74+
75+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.zstack.sdk.zwatch.resnotify;
2+
3+
4+
5+
public class QueryResNotifySubscriptionResult {
6+
public java.util.List inventories;
7+
public void setInventories(java.util.List inventories) {
8+
this.inventories = inventories;
9+
}
10+
public java.util.List getInventories() {
11+
return this.inventories;
12+
}
13+
14+
public java.lang.Long total;
15+
public void setTotal(java.lang.Long total) {
16+
this.total = total;
17+
}
18+
public java.lang.Long getTotal() {
19+
return this.total;
20+
}
21+
22+
}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package org.zstack.sdk.zwatch.resnotify;
2+
3+
import org.zstack.sdk.zwatch.resnotify.ResNotifyType;
4+
import org.zstack.sdk.zwatch.resnotify.ResNotifySubscriptionState;
5+
import org.zstack.sdk.zwatch.resnotify.ResNotifyWebhookRefInventory;
6+
7+
public class ResNotifySubscriptionInventory {
8+
9+
public java.lang.String uuid;
10+
public void setUuid(java.lang.String uuid) {
11+
this.uuid = uuid;
12+
}
13+
public java.lang.String getUuid() {
14+
return this.uuid;
15+
}
16+
17+
public java.lang.String name;
18+
public void setName(java.lang.String name) {
19+
this.name = name;
20+
}
21+
public java.lang.String getName() {
22+
return this.name;
23+
}
24+
25+
public java.lang.String description;
26+
public void setDescription(java.lang.String description) {
27+
this.description = description;
28+
}
29+
public java.lang.String getDescription() {
30+
return this.description;
31+
}
32+
33+
public java.lang.String resourceTypes;
34+
public void setResourceTypes(java.lang.String resourceTypes) {
35+
this.resourceTypes = resourceTypes;
36+
}
37+
public java.lang.String getResourceTypes() {
38+
return this.resourceTypes;
39+
}
40+
41+
public java.lang.String eventTypes;
42+
public void setEventTypes(java.lang.String eventTypes) {
43+
this.eventTypes = eventTypes;
44+
}
45+
public java.lang.String getEventTypes() {
46+
return this.eventTypes;
47+
}
48+
49+
public ResNotifyType type;
50+
public void setType(ResNotifyType type) {
51+
this.type = type;
52+
}
53+
public ResNotifyType getType() {
54+
return this.type;
55+
}
56+
57+
public ResNotifySubscriptionState state;
58+
public void setState(ResNotifySubscriptionState state) {
59+
this.state = state;
60+
}
61+
public ResNotifySubscriptionState getState() {
62+
return this.state;
63+
}
64+
65+
public java.lang.String accountUuid;
66+
public void setAccountUuid(java.lang.String accountUuid) {
67+
this.accountUuid = accountUuid;
68+
}
69+
public java.lang.String getAccountUuid() {
70+
return this.accountUuid;
71+
}
72+
73+
public java.sql.Timestamp createDate;
74+
public void setCreateDate(java.sql.Timestamp createDate) {
75+
this.createDate = createDate;
76+
}
77+
public java.sql.Timestamp getCreateDate() {
78+
return this.createDate;
79+
}
80+
81+
public java.sql.Timestamp lastOpDate;
82+
public void setLastOpDate(java.sql.Timestamp lastOpDate) {
83+
this.lastOpDate = lastOpDate;
84+
}
85+
public java.sql.Timestamp getLastOpDate() {
86+
return this.lastOpDate;
87+
}
88+
89+
public ResNotifyWebhookRefInventory webhookRef;
90+
public void setWebhookRef(ResNotifyWebhookRefInventory webhookRef) {
91+
this.webhookRef = webhookRef;
92+
}
93+
public ResNotifyWebhookRefInventory getWebhookRef() {
94+
return this.webhookRef;
95+
}
96+
97+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.zstack.sdk.zwatch.resnotify;
2+
3+
public enum ResNotifySubscriptionState {
4+
Enabled,
5+
Disabled,
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.zstack.sdk.zwatch.resnotify;
2+
3+
public enum ResNotifyType {
4+
WEBHOOK,
5+
WEBSOCKET,
6+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.zstack.sdk.zwatch.resnotify;
2+
3+
4+
5+
public class ResNotifyWebhookRefInventory {
6+
7+
public java.lang.String uuid;
8+
public void setUuid(java.lang.String uuid) {
9+
this.uuid = uuid;
10+
}
11+
public java.lang.String getUuid() {
12+
return this.uuid;
13+
}
14+
15+
public java.lang.String webhookUrl;
16+
public void setWebhookUrl(java.lang.String webhookUrl) {
17+
this.webhookUrl = webhookUrl;
18+
}
19+
public java.lang.String getWebhookUrl() {
20+
return this.webhookUrl;
21+
}
22+
23+
public java.lang.String customHeaders;
24+
public void setCustomHeaders(java.lang.String customHeaders) {
25+
this.customHeaders = customHeaders;
26+
}
27+
public java.lang.String getCustomHeaders() {
28+
return this.customHeaders;
29+
}
30+
31+
}

0 commit comments

Comments
 (0)