Skip to content

Commit c6c3277

Browse files
nvazquezyadvr
authored andcommitted
UI: Fix user role login due to missing API access on custom hypervisor name (apache#7939)
* UI: Fix user role login due to missing API access on custom hypervisor name * Refactor to include the custom HW display name as part of the response of listCapabilities API * Add since parameter (cherry picked from commit 940733c) Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
1 parent 4dfa38a commit c6c3277

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

api/src/main/java/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public void execute() {
5959
response.setAllowUserViewAllDomainAccounts((Boolean)capabilities.get("allowUserViewAllDomainAccounts"));
6060
response.setKubernetesServiceEnabled((Boolean)capabilities.get("kubernetesServiceEnabled"));
6161
response.setKubernetesClusterExperimentalFeaturesEnabled((Boolean)capabilities.get("kubernetesClusterExperimentalFeaturesEnabled"));
62+
response.setCustomHypervisorDisplayName((String) capabilities.get("customHypervisorDisplayName"));
6263
if (capabilities.containsKey("apiLimitInterval")) {
6364
response.setApiLimitInterval((Integer)capabilities.get("apiLimitInterval"));
6465
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ public class CapabilitiesResponse extends BaseResponse {
100100
@Param(description = "true if experimental features for Kubernetes cluster such as Docker private registry are enabled, false otherwise")
101101
private boolean kubernetesClusterExperimentalFeaturesEnabled;
102102

103+
@SerializedName("customhypervisordisplayname")
104+
@Param(description = "Display name for custom hypervisor", since = "4.19.0")
105+
private String customHypervisorDisplayName;
106+
103107
@SerializedName("defaultuipagesize")
104108
@Param(description = "default page size in the UI for various views, value set in the configurations", since = "4.15.2")
105109
private Long defaultUiPageSize;
@@ -215,4 +219,8 @@ public void setInstancesDisksStatsRetentionEnabled(Boolean instancesDisksStatsRe
215219
public void setInstancesDisksStatsRetentionTime(Integer instancesDisksStatsRetentionTime) {
216220
this.instancesDisksStatsRetentionTime = instancesDisksStatsRetentionTime;
217221
}
222+
223+
public void setCustomHypervisorDisplayName(String customHypervisorDisplayName) {
224+
this.customHypervisorDisplayName = customHypervisorDisplayName;
225+
}
218226
}

server/src/main/java/com/cloud/server/ManagementServerImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import javax.inject.Inject;
4949
import javax.naming.ConfigurationException;
5050

51+
import com.cloud.hypervisor.HypervisorGuru;
5152
import org.apache.cloudstack.acl.ControlledEntity;
5253
import org.apache.cloudstack.acl.SecurityChecker;
5354
import org.apache.cloudstack.affinity.AffinityGroupProcessor;
@@ -4247,6 +4248,7 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) {
42474248
capabilities.put("allowUserViewAllDomainAccounts", allowUserViewAllDomainAccounts);
42484249
capabilities.put("kubernetesServiceEnabled", kubernetesServiceEnabled);
42494250
capabilities.put("kubernetesClusterExperimentalFeaturesEnabled", kubernetesClusterExperimentalFeaturesEnabled);
4251+
capabilities.put("customHypervisorDisplayName", HypervisorGuru.HypervisorCustomDisplayName.value());
42504252
capabilities.put(ApiServiceConfiguration.DefaultUIPageSize.key(), ApiServiceConfiguration.DefaultUIPageSize.value());
42514253
capabilities.put(ApiConstants.INSTANCES_STATS_RETENTION_TIME, StatsCollector.vmStatsMaxRetentionTime.value());
42524254
capabilities.put(ApiConstants.INSTANCES_STATS_USER_ONLY, StatsCollector.vmStatsCollectUserVMOnly.value());

ui/src/store/modules/user.js

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,9 @@ const user = {
282282
if (result && result.defaultuipagesize) {
283283
commit('SET_DEFAULT_LISTVIEW_PAGE_SIZE', result.defaultuipagesize)
284284
}
285+
if (result && result.customhypervisordisplayname) {
286+
commit('SET_CUSTOM_HYPERVISOR_NAME', result.customhypervisordisplayname)
287+
}
285288
}).catch(error => {
286289
reject(error)
287290
})
@@ -298,15 +301,6 @@ const user = {
298301
commit('SET_CLOUDIAN', cloudian)
299302
}).catch(ignored => {
300303
})
301-
302-
api('listConfigurations', { name: 'hypervisor.custom.display.name' }).then(json => {
303-
if (json.listconfigurationsresponse.configuration !== null) {
304-
const config = json.listconfigurationsresponse.configuration[0]
305-
commit('SET_CUSTOM_HYPERVISOR_NAME', config.value)
306-
}
307-
}).catch(error => {
308-
reject(error)
309-
})
310304
})
311305
},
312306

0 commit comments

Comments
 (0)