Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -682,10 +682,34 @@ public void fail(ErrorCode errorCode) {
private void handle(APICreatePortForwardingRuleMsg msg) {
final APICreatePortForwardingRuleEvent evt = new APICreatePortForwardingRuleEvent(msg.getId());

int vipPortEnd = msg.getVipPortEnd() == null ? msg.getVipPortStart() : msg.getVipPortEnd();
int privatePortEnd = msg.getPrivatePortEnd() == null ? msg.getPrivatePortStart() : msg.getPrivatePortEnd();
thdf.chainSubmit(new ChainTask(msg) {
@Override
public String getSyncSignature() {
return String.format("portforwardingrule-vip-%s", msg.getVipUuid());
}

VipVO vip = dbf.findByUuid(msg.getVipUuid(), VipVO.class);
@Override
public void run(SyncTaskChain chain) {
int vipPortEnd = msg.getVipPortEnd() == null ? msg.getVipPortStart() : msg.getVipPortEnd();
int privatePortEnd = msg.getPrivatePortEnd() == null ? msg.getPrivatePortStart() : msg.getPrivatePortEnd();

// re-check VIP port overlap under sync to prevent concurrent duplicate rules
boolean overlap = Q.New(PortForwardingRuleVO.class)
.eq(PortForwardingRuleVO_.vipUuid, msg.getVipUuid())
.eq(PortForwardingRuleVO_.protocolType, PortForwardingProtocolType.valueOf(msg.getProtocolType()))
.lte(PortForwardingRuleVO_.vipPortStart, vipPortEnd)
.gte(PortForwardingRuleVO_.vipPortEnd, msg.getVipPortStart())
.isExists();
if (overlap) {
evt.setError(operr(ORG_ZSTACK_NETWORK_SERVICE_PORTFORWARDING_10017,
"vip port range[vipStartPort:%s, vipEndPort:%s] overlaps with an existing port forwarding rule on vip[uuid:%s]",
msg.getVipPortStart(), vipPortEnd, msg.getVipUuid()));
bus.publish(evt);
chain.next();
return;
}

VipVO vip = dbf.findByUuid(msg.getVipUuid(), VipVO.class);
final PortForwardingRuleVO vo = new PortForwardingRuleVO();
if (msg.getResourceUuid() != null) {
vo.setUuid(msg.getResourceUuid());
Expand Down Expand Up @@ -713,8 +737,8 @@ protected void scripts() {
}
}.execute();

FlowChain chain = FlowChainBuilder.newShareFlowChain();
chain.setName("create-portforwading");
FlowChain flowChain = FlowChainBuilder.newShareFlowChain();
flowChain.setName("create-portforwading");
Comment on lines +740 to +741
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

FlowChain 名称存在拼写错误。

"create-portforwading" 应为 "create-portforwarding"(缺少字母 'r')。

🐛 建议修复
 FlowChain flowChain = FlowChainBuilder.newShareFlowChain();
-flowChain.setName("create-portforwading");
+flowChain.setName("create-portforwarding");
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
FlowChain flowChain = FlowChainBuilder.newShareFlowChain();
flowChain.setName("create-portforwading");
FlowChain flowChain = FlowChainBuilder.newShareFlowChain();
flowChain.setName("create-portforwarding");
🤖 Prompt for AI Agents
In
`@plugin/portForwarding/src/main/java/org/zstack/network/service/portforwarding/PortForwardingManagerImpl.java`
around lines 740 - 741, The FlowChain name in PortForwardingManagerImpl is
misspelled as "create-portforwading"; update the string passed to
flowChain.setName(...) (the FlowChain created via
FlowChainBuilder.newShareFlowChain() and stored in variable flowChain) to the
correct spelling "create-portforwarding" so the chain name is accurate.

VipInventory vipInventory = VipInventory.valueOf(vip);
if (msg.getVmNicUuid() == null) {
ModifyVipAttributesStruct struct = new ModifyVipAttributesStruct();
Expand All @@ -727,13 +751,15 @@ protected void scripts() {
public void success() {
evt.setInventory(PortForwardingRuleInventory.valueOf(vo));
bus.publish(evt);
chain.next();
}

@Override
public void fail(ErrorCode errorCode) {
dbf.remove(vo);
evt.setError(errorCode);
bus.publish(evt);
chain.next();
}
});

Expand All @@ -757,20 +783,22 @@ public void fail(ErrorCode errorCode) {
public void success() {
evt.setInventory(PortForwardingRuleInventory.valueOf(vo));
bus.publish(evt);
chain.next();
}

@Override
public void fail(ErrorCode errorCode) {
dbf.remove(vo);
evt.setError(errorCode);
bus.publish(evt);
chain.next();
}
});

return;
}

chain.then(new ShareFlow() {
flowChain.then(new ShareFlow() {
@Override
public void setup() {
vo.setVmNicUuid(vmNic.getUuid());
Expand Down Expand Up @@ -853,20 +881,29 @@ public void fail(ErrorCode errorCode) {
});


chain.done(new FlowDoneHandler(msg) {
flowChain.done(new FlowDoneHandler(msg) {
@Override
public void handle(Map data) {
evt.setInventory(PortForwardingRuleInventory.valueOf(dbf.reload(vo)));
bus.publish(evt);
chain.next();
}
}).error(new FlowErrorHandler(msg) {
@Override
public void handle(ErrorCode errCode, Map data) {
dbf.remove(vo);
evt.setError(errCode);
bus.publish(evt);
chain.next();
}
}).start();
}

@Override
public String getName() {
return String.format("api-create-portforwardingrule-vip-%s", msg.getVipUuid());
}
});
}

private void populateExtensions() {
Expand Down