From c03f1307a8fc9b3c32c19e93ff9ed7849685cacb Mon Sep 17 00:00:00 2001
From: andrijapanicsb <45762285+andrijapanicsb@users.noreply.github.com>
Date: Tue, 26 May 2026 06:33:57 +0200
Subject: [PATCH 1/4] Clarify VR public IP labels
---
.../api/command/user/network/CreateNetworkCmd.java | 6 +++---
.../cloudstack/api/command/user/vpc/CreateVPCCmd.java | 6 +++---
ui/public/locales/en.json | 3 ++-
ui/src/views/network/CreateIsolatedNetworkForm.vue | 7 ++++++-
ui/src/views/network/CreateSharedNetworkForm.vue | 4 ++--
5 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
index ee5b8568e835..d690328304ee 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/CreateNetworkCmd.java
@@ -185,9 +185,9 @@ public class CreateNetworkCmd extends BaseCmd implements UserCmd {
@Parameter(name = ApiConstants.SOURCE_NAT_IP,
type = CommandType.STRING,
- description = "IPV4 address to be assigned to the public interface of the network router. " +
- "This address will be used as source NAT address for the network. " +
- "\nIf an address is given and it cannot be acquired, an error will be returned and the network won´t be implemented,",
+ description = "Optional IPv4 address to assign to the public interface of the network router. " +
+ "This address will be used as the Source NAT address for the network. " +
+ "\nIf an address is given and it cannot be acquired, an error will be returned and the network will not be implemented.",
since = "4.19")
private String sourceNatIP;
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
index 86309d7f28a5..04f65f19d445 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
@@ -117,9 +117,9 @@ public class CreateVPCCmd extends BaseAsyncCreateCmd implements UserCmd {
@Parameter(name = ApiConstants.IP6_DNS2, type = CommandType.STRING, description = "The second IPv6 DNS for the VPC", since = "4.18.0")
private String ip6Dns2;
- @Parameter(name = ApiConstants.SOURCE_NAT_IP, type = CommandType.STRING, description = "IPv4 address to be assigned to the public interface of the Network router." +
- "This address will be used as source NAT address for the Networks in ths VPC. " +
- "\nIf an address is given and it cannot be acquired, an error will be returned and the Network won´t be implemented,",
+ @Parameter(name = ApiConstants.SOURCE_NAT_IP, type = CommandType.STRING, description = "Optional IPv4 address to assign to the public interface of the Network router. " +
+ "This address will be used as the Source NAT address for the Networks in this VPC. " +
+ "\nIf an address is given and it cannot be acquired, an error will be returned and the Network will not be implemented.",
since = "4.19")
private String sourceNatIP;
diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index f0a6ad3c79b9..1a477fb12372 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -1155,6 +1155,7 @@
"label.fwdeviceid": "ID",
"label.fwdevicestate": "Status",
"label.gateway": "Gateway",
+"label.gateway.internal.routerip": "Gateway (internal IPv4 address for the VR)",
"label.global": "Global",
"label.global.settings": "Global Settings",
"label.globo.dns": "GloboDNS",
@@ -2192,7 +2193,7 @@
"label.router.health.check.success": "Success",
"label.router.health.checks": "Health checks",
"label.routercount": "Total of virtual routers",
-"label.routerip": "IPv4 address for the VR in this Network.",
+"label.routerip": "Public IPv4 address for the VR in this network",
"label.routeripv6": "IPv6 address for the VR in this Network.",
"label.routing.firewall": "IPv4 Routing Firewall",
"label.resourcegroup": "Resource group",
diff --git a/ui/src/views/network/CreateIsolatedNetworkForm.vue b/ui/src/views/network/CreateIsolatedNetworkForm.vue
index 8d6fed9cf129..63b7f2c22c31 100644
--- a/ui/src/views/network/CreateIsolatedNetworkForm.vue
+++ b/ui/src/views/network/CreateIsolatedNetworkForm.vue
@@ -196,7 +196,7 @@
ref="gateway"
name="gateway">
-
+
-
+
-
+
Date: Tue, 26 May 2026 06:37:34 +0200
Subject: [PATCH 2/4] Shorten VR public IP label
---
ui/public/locales/en.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index 1a477fb12372..6364b3e106a9 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -2193,7 +2193,7 @@
"label.router.health.check.success": "Success",
"label.router.health.checks": "Health checks",
"label.routercount": "Total of virtual routers",
-"label.routerip": "Public IPv4 address for the VR in this network",
+"label.routerip": "Public IPv4 address for the VR",
"label.routeripv6": "IPv6 address for the VR in this Network.",
"label.routing.firewall": "IPv4 Routing Firewall",
"label.resourcegroup": "Resource group",
From 8194e40027d15876b9cfed3152c33639380805c8 Mon Sep 17 00:00:00 2001
From: andrijapanicsb <45762285+andrijapanicsb@users.noreply.github.com>
Date: Tue, 26 May 2026 06:42:21 +0200
Subject: [PATCH 3/4] Clarify VPC router source NAT description
---
.../apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
index 04f65f19d445..c1ebd556400a 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
@@ -117,7 +117,7 @@ public class CreateVPCCmd extends BaseAsyncCreateCmd implements UserCmd {
@Parameter(name = ApiConstants.IP6_DNS2, type = CommandType.STRING, description = "The second IPv6 DNS for the VPC", since = "4.18.0")
private String ip6Dns2;
- @Parameter(name = ApiConstants.SOURCE_NAT_IP, type = CommandType.STRING, description = "Optional IPv4 address to assign to the public interface of the Network router. " +
+ @Parameter(name = ApiConstants.SOURCE_NAT_IP, type = CommandType.STRING, description = "Optional IPv4 address to assign to the public interface of the VPC router. " +
"This address will be used as the Source NAT address for the Networks in this VPC. " +
"\nIf an address is given and it cannot be acquired, an error will be returned and the Network will not be implemented.",
since = "4.19")
From 7cf4a333e4ef05c20c5ecf64afbbe19c1a00a70a Mon Sep 17 00:00:00 2001
From: andrijapanicsb <45762285+andrijapanicsb@users.noreply.github.com>
Date: Tue, 26 May 2026 06:44:40 +0200
Subject: [PATCH 4/4] Clarify VPC implementation error message
---
.../apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
index c1ebd556400a..ca91578d90d8 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/CreateVPCCmd.java
@@ -119,7 +119,7 @@ public class CreateVPCCmd extends BaseAsyncCreateCmd implements UserCmd {
@Parameter(name = ApiConstants.SOURCE_NAT_IP, type = CommandType.STRING, description = "Optional IPv4 address to assign to the public interface of the VPC router. " +
"This address will be used as the Source NAT address for the Networks in this VPC. " +
- "\nIf an address is given and it cannot be acquired, an error will be returned and the Network will not be implemented.",
+ "\nIf an address is given and it cannot be acquired, an error will be returned and the VPC will not be implemented.",
since = "4.19")
private String sourceNatIP;