상태정보는 Elastic Search , 구성정보는 서비스API
HA탭 진입시 , 새로고침시 구성정보 불러오는 함수 실행
async getHaInfo(){
// 구성정보 호출 및 받아옴
await this.getHaStatus() // 상태정보 받아옴
// 상태정보와 구성정보의 local_ip를 비교하여 일치하면 테이블에 표현할 배열로 합침
// (Active,Standby둘다)
// Active가 테이블의 상단으로 오게 sort적용
}
async getHaStatus(){
await Promis.any().then((el)=>{
this.selectHAItems(el._source)
}) // 살아있는 노드의 IP로 다 호출해서 성공한 곳의 데이터를가져옴
}
selectHAItems(){
// ES에서 불러온 Items중에서 최근것으로 role이 Acitve인것과 Standby인것 하나씩 가져옴
// 현재시간과 @timestamp상의 시간을 비교해서 30초 이내인것만 statusArr배열에 담음
// (Active,Standby둘다)
}
상태정보를 ES에서 불러와서(10개) 각role별(Active,Standby) 최근의 Obj를 하나씩 가져옴(둘 다없을수도있고 하나만 있을수도 있음)
현재시간과 각role별 obj의 timestamp를 비교하여 30초 이상 차이가 나면 상태정보 표시X("-"로 표현)
상태정보의 Local IP 와 HA구성정보의 Local IP를 각각 비교하여 일치하면 구성정보와 상태정보의 Object를합침
HA상태 정보를 서비스로부터 받아 tooltip으로 표현
위의 4개 항목이 모두 sync또는 active일때 초록색
keepalived, database 둘 중 하나라도 dead이면 빨간색
장비연결을 알수 없을 때 회색
그 외의 상황일 때 노란색