diff --git a/ui/src/components/view/ActionButton.vue b/ui/src/components/view/ActionButton.vue
index 14128a5ce554..8e1220cb589a 100644
--- a/ui/src/components/view/ActionButton.vue
+++ b/ui/src/components/view/ActionButton.vue
@@ -177,6 +177,15 @@ export default {
methods: {
execAction (action) {
action.resource = this.resource
+ const record = this.resource || this.item
+ if (action?.api === 'disableOutOfBandManagementForHost' && (record?.hostha?.haenable === true || record?.hastate === 'Enabled')) {
+ this.$notification.error({
+ message: this.$t('label.error'),
+ description: 'Please disable High Availability (HA) on this host before disabling Out-of-Band Management (OOBM).',
+ duration: 0
+ })
+ return
+ }
if (action.docHelp) {
action.docHelp = this.$applyDocHelpMappings(action.docHelp)
}
diff --git a/ui/src/components/view/ListView.vue b/ui/src/components/view/ListView.vue
index c5346390f178..4ba867a1a9f5 100644
--- a/ui/src/components/view/ListView.vue
+++ b/ui/src/components/view/ListView.vue
@@ -655,8 +655,7 @@
{{ usageTypeMap[record.usagetype] }}
-
-
+
{{ text }}
@@ -693,16 +692,21 @@
{{ text }}
- {{ text }}
-
-
+ {{ text }}
{{ (record.projectname || record.account).concat(' (').concat($t('label.project')).concat(')') }}
+ v-else-if="$store.getters.userInfo.roletype !== 'User'"
+ :to="{ path: '/account', query: { name: record.account, domainid: record.domainid, dataView: true } }">
+ {{ text }}
+
{{ text }}
+
+
+ {{ (record.projectname || record.account).concat(' (').concat($t('label.project')).concat(')') }}
+
+
diff --git a/ui/src/config/section/infra/hosts.js b/ui/src/config/section/infra/hosts.js
index 48e850a22fbe..9a5a3ded9268 100644
--- a/ui/src/config/section/infra/hosts.js
+++ b/ui/src/config/section/infra/hosts.js
@@ -255,7 +255,12 @@ export default {
message: 'label.ha.configure',
docHelp: 'adminguide/reliability.html#ha-for-hosts',
dataView: true,
- show: (record) => { return ['KVM', 'Simulator'].includes(record.hypervisor) },
+ show: (record) => {
+ if (record.hypervisor === 'KVM') {
+ return Boolean(record?.outofbandmanagement?.enabled)
+ }
+ return record.hypervisor === 'Simulator'
+ },
args: ['hostid', 'provider'],
mapping: {
hostid: {
@@ -274,7 +279,13 @@ export default {
docHelp: 'adminguide/reliability.html#ha-for-hosts',
dataView: true,
show: (record) => {
- return record.hypervisor !== 'External' && !(record?.hostha?.haenable === true)
+ if (record.hypervisor === 'External' || record?.hostha?.haenable === true) {
+ return false
+ }
+ if (record.hypervisor === 'KVM') {
+ return Boolean(record?.outofbandmanagement?.enabled)
+ }
+ return true
},
args: ['hostid'],
mapping: {