This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch 4.19
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.19 by this push:
new 0f544c9a3b0 api/ui: add specifyvlan to network response (#10236)
0f544c9a3b0 is described below
commit 0f544c9a3b01adec4d723907e27577883c361fbf
Author: Wei Zhou <[email protected]>
AuthorDate: Thu Jan 30 15:35:33 2025 +0100
api/ui: add specifyvlan to network response (#10236)
---
.../java/org/apache/cloudstack/api/response/NetworkResponse.java | 8 ++++++++
server/src/main/java/com/cloud/api/ApiResponseHelper.java | 1 +
ui/src/config/section/network.js | 9 ++++++---
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git
a/api/src/main/java/org/apache/cloudstack/api/response/NetworkResponse.java
b/api/src/main/java/org/apache/cloudstack/api/response/NetworkResponse.java
index 1049740bf55..24f76215d09 100644
--- a/api/src/main/java/org/apache/cloudstack/api/response/NetworkResponse.java
+++ b/api/src/main/java/org/apache/cloudstack/api/response/NetworkResponse.java
@@ -187,6 +187,10 @@ public class NetworkResponse extends
BaseResponseWithAssociatedNetwork implement
@Param(description = "true network requires restart")
private Boolean restartRequired;
+ @SerializedName(ApiConstants.SPECIFY_VLAN)
+ @Param(description = "true if network supports specifying vlan, false
otherwise")
+ private Boolean specifyVlan;
+
@SerializedName(ApiConstants.SPECIFY_IP_RANGES)
@Param(description = "true if network supports specifying ip ranges, false
otherwise")
private Boolean specifyIpRanges;
@@ -487,6 +491,10 @@ public class NetworkResponse extends
BaseResponseWithAssociatedNetwork implement
this.restartRequired = restartRequired;
}
+ public void setSpecifyVlan(Boolean specifyVlan) {
+ this.specifyVlan = specifyVlan;
+ }
+
public void setSpecifyIpRanges(Boolean specifyIpRanges) {
this.specifyIpRanges = specifyIpRanges;
}
diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java
b/server/src/main/java/com/cloud/api/ApiResponseHelper.java
index 68761f6eed5..ed7a51d215c 100644
--- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java
@@ -2504,6 +2504,7 @@ public class ApiResponseHelper implements
ResponseGenerator {
response.setIsSystem(networkOffering.isSystemOnly());
response.setNetworkOfferingAvailability(networkOffering.getAvailability().toString());
response.setIsPersistent(networkOffering.isPersistent());
+ response.setSpecifyVlan(networkOffering.isSpecifyVlan());
if (Network.GuestType.Isolated.equals(network.getGuestType()) &&
network.getVpcId() == null) {
response.setEgressDefaultPolicy(networkOffering.isEgressDefaultPolicy());
}
diff --git a/ui/src/config/section/network.js b/ui/src/config/section/network.js
index 986a2c206c7..edbe4bb37b7 100644
--- a/ui/src/config/section/network.js
+++ b/ui/src/config/section/network.js
@@ -141,7 +141,8 @@ export default {
label: 'label.update.network',
dataView: true,
disabled: (record, user) => {
- return !record.projectid && (record.account !==
user.userInfo.account && !['Admin',
'DomainAdmin'].includes(user.userInfo.roletype))
+ return (!record.projectid && (record.account !==
user.userInfo.account && !['Admin',
'DomainAdmin'].includes(user.userInfo.roletype))) ||
+ (record.type === 'Shared' && record.specifyvlan &&
!['Admin'].includes(user.userInfo.roletype))
},
popup: true,
component: shallowRef(defineAsyncComponent(() =>
import('@/views/network/UpdateNetwork.vue')))
@@ -153,7 +154,8 @@ export default {
message: 'message.restart.network',
dataView: true,
disabled: (record, user) => {
- return !record.projectid && (record.account !==
user.userInfo.account && !['Admin',
'DomainAdmin'].includes(user.userInfo.roletype))
+ return (!record.projectid && (record.account !==
user.userInfo.account && !['Admin',
'DomainAdmin'].includes(user.userInfo.roletype))) ||
+ (record.type === 'Shared' && record.specifyvlan &&
!['Admin'].includes(user.userInfo.roletype))
},
args: (record, store, isGroupAction) => {
var fields = []
@@ -194,7 +196,8 @@ export default {
message: 'message.action.delete.network',
dataView: true,
disabled: (record, user) => {
- return !record.projectid && (record.account !==
user.userInfo.account && !['Admin',
'DomainAdmin'].includes(user.userInfo.roletype))
+ return (!record.projectid && (record.account !==
user.userInfo.account && !['Admin',
'DomainAdmin'].includes(user.userInfo.roletype))) ||
+ (record.type === 'Shared' && record.specifyvlan &&
!['Admin'].includes(user.userInfo.roletype))
},
groupAction: true,
popup: true,