Skip to content

Commit 223351c

Browse files
authored
Add VR's system offering to network listing (#12862)
* Add VR system offering to network offerings listing * Change method to display order column as the last one * Remove VR's service offering id and name from non-admin users * Removal of domain column and addition of Egress default policy column * Revert domain removal
1 parent bbf8c1a commit 223351c

7 files changed

Lines changed: 29 additions & 3 deletions

File tree

api/src/main/java/org/apache/cloudstack/api/ApiConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ public class ApiConstants {
451451
public static final String SERIAL = "serial";
452452
public static final String SERVICE_IP = "serviceip";
453453
public static final String SERVICE_OFFERING_ID = "serviceofferingid";
454+
public static final String SERVICE_OFFERING_NAME = "serviceofferingname";
454455
public static final String SESSIONKEY = "sessionkey";
455456
public static final String SHOW_CAPACITIES = "showcapacities";
456457
public static final String SHOW_REMOVED = "showremoved";

api/src/main/java/org/apache/cloudstack/api/response/NetworkOfferingResponse.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ public class NetworkOfferingResponse extends BaseResponseWithAnnotations {
9191
@Param(description = "The ID of the service offering used by virtual router provider")
9292
private String serviceOfferingId;
9393

94+
@SerializedName(ApiConstants.SERVICE_OFFERING_NAME)
95+
@Param(description = "the name of the service offering used by virtual router provider")
96+
private String serviceOfferingName;
97+
9498
@SerializedName(ApiConstants.SERVICE)
9599
@Param(description = "The list of supported services", responseObject = ServiceResponse.class)
96100
private List<ServiceResponse> services;
@@ -330,4 +334,12 @@ public String getRoutingMode() {
330334
public void setRoutingMode(String routingMode) {
331335
this.routingMode = routingMode;
332336
}
337+
338+
public String getServiceOfferingName() {
339+
return serviceOfferingName;
340+
}
341+
342+
public void setServiceOfferingName(String serviceOfferingName) {
343+
this.serviceOfferingName = serviceOfferingName;
344+
}
333345
}

server/src/main/java/com/cloud/api/ApiResponseHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2336,8 +2336,9 @@ public NetworkOfferingResponse createNetworkOfferingResponse(NetworkOffering off
23362336
}
23372337
if (so != null) {
23382338
ServiceOffering soffering = ApiDBUtils.findServiceOfferingById(so);
2339-
if (soffering != null) {
2339+
if (soffering != null && _accountMgr.isRootAdmin(CallContext.current().getCallingAccountId())) {
23402340
response.setServiceOfferingId(soffering.getUuid());
2341+
response.setServiceOfferingName(soffering.getName());
23412342
}
23422343
}
23432344
Map<Service, Set<Provider>> serviceProviderMap = ApiDBUtils.listNetworkOfferingServices(offering.getId());

ui/public/locales/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2487,6 +2487,7 @@
24872487
"label.virtual.network": "Virtual Network",
24882488
"label.virtual.networking": "Virtual Networking",
24892489
"label.virtual.routers": "Virtual Routers",
2490+
"label.virtual.routers.system.offering": "VR system offering",
24902491
"label.virtualmachineid": "Instance ID",
24912492
"label.virtualmachinename": "Instance name",
24922493
"label.virtualsize": "Virtual Size",

ui/public/locales/pt_BR.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1729,6 +1729,7 @@
17291729
"label.virtual.network": "Rede virtual",
17301730
"label.virtual.networking": "Rede virtual",
17311731
"label.virtual.routers": "Roteadores virtuais",
1732+
"label.virtual.routers.system.offering": "Oferta de sistema do roteador virtual",
17321733
"label.virtualmachineid": "ID da VM",
17331734
"label.virtualmachinename": "Nome da VM",
17341735
"label.virtualsize": "Tamanho virtual",

ui/src/components/view/ListView.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,8 @@
208208
<router-link :to="{ path: '/physicalnetwork/' + record.physicalnetworkid }">{{ text }}</router-link>
209209
</template>
210210
<template v-if="column.key === 'serviceofferingname'">
211-
<router-link :to="{ path: '/computeoffering/' + record.serviceofferingid }">{{ text }}</router-link>
211+
<router-link v-if="$route.path === '/networkoffering'" :to="{ path: '/systemoffering/' + record.serviceofferingid, query:{issystem:'true'} }">{{ text }}</router-link>
212+
<router-link v-else :to="{ path: '/computeoffering/' + record.serviceofferingid }">{{ text }}</router-link>
212213
</template>
213214
<template v-if="column.key === 'hypervisor'">
214215
<span v-if="$route.name === 'hypervisorcapability'">
@@ -426,6 +427,9 @@
426427
<status :text="record.enabled ? record.enabled.toString() : 'false'" />
427428
{{ record.enabled ? 'Enabled' : 'Disabled' }}
428429
</template>
430+
<template v-if="column.key === 'egressdefaultpolicy'">
431+
<span> {{ record.egressdefaultpolicy ? 'Allow' : 'Deny' }} </span>
432+
</template>
429433
<template v-if="['created', 'sent', 'removed', 'effectiveDate', 'endDate', 'allocated'].includes(column.key) || (['startdate'].includes(column.key) && ['webhook'].includes($route.path.split('/')[1])) || (column.key === 'allocated' && ['asnumbers', 'publicip', 'ipv4subnets'].includes($route.meta.name) && text)">
430434
{{ text && $toLocaleDate(text) }}
431435
</template>

ui/src/config/section/offering.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,13 @@ export default {
389389
docHelp: 'adminguide/networking.html#network-offerings',
390390
permission: ['listNetworkOfferings'],
391391
searchFilters: ['name', 'zoneid', 'domainid', 'tags'],
392-
columns: ['name', 'state', 'guestiptype', 'traffictype', 'networkrate', 'domain', 'zone', 'order'],
392+
columns: () => {
393+
const fields = ['name', 'state', 'guestiptype', 'traffictype', 'networkrate', 'domain', 'zone', 'egressdefaultpolicy', 'order']
394+
if (store.getters.userInfo.roletype === 'Admin') {
395+
fields.splice(fields.length - 1, 0, { field: 'serviceofferingname', customTitle: 'virtual.routers.system.offering' })
396+
}
397+
return fields
398+
},
393399
details: ['name', 'id', 'displaytext', 'guestiptype', 'traffictype', 'internetprotocol', 'networkrate', 'ispersistent', 'egressdefaultpolicy', 'availability', 'conservemode', 'specifyvlan', 'routingmode', 'specifyasnumber', 'specifyipranges', 'supportspublicaccess', 'supportsstrechedl2subnet', 'forvpc', 'fornsx', 'networkmode', 'service', 'tags', 'domain', 'zone'],
394400
resourceType: 'NetworkOffering',
395401
tabs: [

0 commit comments

Comments
 (0)