Skip to content

Commit 7834cef

Browse files
committed
HA 기능 개선(공통 목록화면 5초 자동새로고침기능 추가, 호스트 목록 Ha상태값 표시 수정)
1 parent fe3e2aa commit 7834cef

6 files changed

Lines changed: 30 additions & 31 deletions

File tree

scripts/vm/hypervisor/kvm/kvmheartbeat_clvm.sh

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,21 +140,17 @@ check_hbLog() {
140140
fi
141141

142142
if [ $diff -gt $interval ]; then
143-
return $diff
143+
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(CLVM) > [HOST STATE : DEAD]"
144+
echo "### [HOST STATE : DEAD] Set maximum interval: ($interval seconds), Actual difference: ($diff seconds) => Considered host down in [PoolType : CLVM] ###"
145+
else
146+
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(CLVM) > [HOST STATE : ALIVE]"
147+
echo "### [HOST STATE : ALIVE] in [PoolType : CLVM] ###"
144148
fi
145149
return 0
146150
}
147151

148152
if [ "$rflag" == "1" ]; then
149153
check_hbLog
150-
diff=$?
151-
if [ $diff == 0 ]; then
152-
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(CLVM) > [HOST STATE : ALIVE]"
153-
echo "### [HOST STATE : ALIVE] in [PoolType : CLVM] ###"
154-
else
155-
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(CLVM) > [HOST STATE : DEAD]"
156-
echo "### [HOST STATE : DEAD] Set maximum interval: ($interval seconds), Actual difference: ($diff seconds) => Considered host down in [PoolType : CLVM] ###"
157-
fi
158154
exit 0
159155
elif [ "$cflag" == "1" ]; then
160156
/usr/bin/logger -t heartbeat "kvmheartbeat_clvm.sh will reboot system because it was unable to write the heartbeat to the storage."

scripts/vm/hypervisor/kvm/kvmheartbeat_gfs.sh

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,22 +126,20 @@ check_hbLog() {
126126

127127
getHbTimeFmt=$(date -d @${getHbTime} '+%Y-%m-%d %H:%M:%S')
128128
logger -p user.info -t MOLD-HA-HB "[Checking] 호스트:$HostIP | HB 파일 체크(GFS) > [현 시간:$CurrentTime | HB 파일 시간:$getHbTimeFmt | 시간 차이:$diff초]"
129+
129130
if [ $diff -gt $interval ]; then
130-
return $diff
131+
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(GFS) > [HOST STATE : DEAD]"
132+
echo "### [HOST STATE : DEAD] Set maximum interval: ($interval seconds), Actual difference: ($diff seconds) => Considered host down in [PoolType : SharedMountPoint] ###"
133+
return 0
134+
else
135+
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(GFS) > [HOST STATE : ALIVE]"
136+
echo "### [HOST STATE : ALIVE] in [PoolType : SharedMountPoint] ###"
131137
fi
132138
return 0
133139
}
134140

135141
if [ "$rflag" == "1" ]; then
136142
check_hbLog
137-
diff=$?
138-
if [ $diff == 0 ]; then
139-
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(GFS) > [HOST STATE : ALIVE]"
140-
echo "### [HOST STATE : ALIVE] in [PoolType : SharedMountPoint] ###"
141-
else
142-
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(GFS) > [HOST STATE : DEAD]"
143-
echo "### [HOST STATE : DEAD] Set maximum interval: ($interval seconds), Actual difference: ($diff seconds) => Considered host down in [PoolType : SharedMountPoint] ###"
144-
fi
145143
exit 0
146144
elif [ "$cflag" == "1" ]; then
147145
/usr/bin/logger -t heartbeat "kvmheartbeat_gfs.sh will reboot system because it was unable to write the heartbeat to the storage."

scripts/vm/hypervisor/kvm/kvmheartbeat_rbd.sh

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,22 +113,20 @@ check_hbLog() {
113113
diff=$(expr $Timestamp - $getHbTime)
114114
getHbTimeFmt=$(date -d @${getHbTime} '+%Y-%m-%d %H:%M:%S')
115115
logger -p user.info -t MOLD-HA-HB "[Checking] 호스트:$HostIP | HB 파일 체크(RBD) > [현 시간:$CurrentTime | HB 파일 시간:$getHbTimeFmt | 시간 차이:$diff초]"
116+
116117
if [ $diff -gt $interval ]; then
117-
return $diff
118+
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(RBD) > [HOST STATE : DEAD]"
119+
echo "### [HOST STATE : DEAD] Set maximum interval: ($interval seconds), Actual difference: ($diff seconds) => Considered host down in [PoolType : RBD] ###"
120+
return 0
121+
else
122+
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(RBD) > [HOST STATE : ALIVE]"
123+
echo "### [HOST STATE : ALIVE] in [PoolType : RBD] ###"
118124
fi
119125
return 0
120126
}
121127

122128
if [ "$rflag" == "1" ]; then
123129
check_hbLog
124-
diff=$?
125-
if [ $diff == 0 ]; then
126-
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(RBD) > [HOST STATE : ALIVE]"
127-
echo "### [HOST STATE : ALIVE] in [PoolType : RBD] ###"
128-
else
129-
logger -p user.info -t MOLD-HA-HB "[Result] 호스트:$HostIP | HB 체크 결과(RBD) > [HOST STATE : DEAD]"
130-
echo "### [HOST STATE : DEAD] Set maximum interval: ($interval seconds), Actual difference: ($diff seconds) => Considered host down in [PoolType : RBD] ###"
131-
fi
132130
exit 0
133131
elif [ "$cflag" == "1" ]; then
134132
/usr/bin/logger -t heartbeat "kvmheartbeat_rbd.sh will reboot system because it was unable to write the heartbeat to the storage."

ui/src/components/view/DetailsTab.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@
171171
<div>
172172
<strong>{{ $t('label.ha.enable') }}</strong>
173173
<br/>
174-
<div>{{ dataResource.resourcedetails.resourceHAEnabled }}</div>
174+
<div>{{ dataResource.resourcedetails?.resourceHAEnabled }}</div>
175175
</div>
176176
</a-list-item>
177177
<a-list-item v-else-if="item === 'ip6address' && ipV6Address && ipV6Address.length > 0">

ui/src/components/view/ListView.vue

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -477,10 +477,15 @@
477477
</span>
478478
</template>
479479
<template v-if="['cluster', 'zone'].includes($route.meta.name) && column.key === 'haenable'">
480-
<status :text="record.resourcedetails.resourceHAEnabled === 'true' ? 'enabled' : 'disabled'" displayText/>
480+
<status :text="record.resourcedetails?.resourceHAEnabled === 'true' ? 'enabled' : 'disabled'" displayText/>
481481
</template>
482482
<template v-if="column.key === 'hastate'">
483-
<a-tag>{{ record.hostha.hastate }}</a-tag>
483+
<!-- <a-tag>{{ record.hostha.hastate }}</a-tag> -->
484+
<a-tag v-if="record.hostha.hastate === 'Available'" color="success" :styles="{ 'min-width': '250px' }">{{ record.hostha.hastate }}</a-tag>
485+
<a-tag v-else-if="record.hostha.hastate === 'Suspect' || record.hostha.hastate === 'Checking'" color="processing">{{ record.hostha.hastate }}</a-tag>
486+
<a-tag v-else-if="record.hostha.hastate === 'Fenced'" color="error">{{ record.hostha.hastate }}</a-tag>
487+
<a-tag v-else-if="record.hostha.hastate === 'Degraded'" color="default">{{ record.hostha.hastate }}</a-tag>
488+
<a-tag v-else color="warning">{{ record.hostha.hastate }}</a-tag>
484489
</template>
485490
<template v-if="$route.meta.name === 'host' && column.key === 'haenable'">
486491
<status :text="record.hostha.haenable ? 'enabled' : 'disabled'" displayText/>

ui/src/views/AutogenView.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -910,6 +910,7 @@ export default {
910910
},
911911
watch: {
912912
'$route' (to, from) {
913+
clearInterval(this.refreshInterval)
913914
if (to.fullPath !== from.fullPath && !to.fullPath.includes('action/') && to?.query?.tab !== 'browser') {
914915
if ('page' in to.query) {
915916
this.page = Number(to.query.page)
@@ -919,6 +920,7 @@ export default {
919920
}
920921
this.itemCount = 0
921922
this.fetchData()
923+
if (Object.keys(to.params).length === 0) this.refreshInterval = setInterval(this.fetchData, 5000)
922924
if ('projectid' in to.query) {
923925
this.switchProject(to.query.projectid)
924926
}
@@ -1219,7 +1221,7 @@ export default {
12191221
params.details = 'group,nics,secgrp,tmpl,servoff,diskoff,iso,volume,affgrp,backoff'
12201222
}
12211223
1222-
this.loading = true
1224+
this.loading = refreshed
12231225
if (this.$route.params && this.$route.params.id) {
12241226
params.id = this.$route.params.id
12251227
if (['listSSHKeyPairs'].includes(this.apiName)) {

0 commit comments

Comments
 (0)