handle exception and restart pullingafter timeout
This commit is contained in:
parent
5b923badf7
commit
388bcc6c2c
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "Divera Status",
|
"name": "Divera Status",
|
||||||
"version": "0.0.1",
|
"version": "0.0.2",
|
||||||
"description": "Übernehmen des Status aus der Divera App in Alarmiator",
|
"description": "Übernehmen des Status aus der Divera App in Alarmiator",
|
||||||
"main": "base.js",
|
"main": "base.js",
|
||||||
"service": "service.js",
|
"service": "service.js",
|
||||||
|
73
service.js
73
service.js
@ -238,41 +238,54 @@ async function onStateChange(consumer_id, status_id){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function sleep(ms) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
setTimeout(resolve, ms);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async function startAPI() {
|
async function startAPI() {
|
||||||
let _auth = await auth()
|
while(true){
|
||||||
if(_auth){
|
try{
|
||||||
global.logger.info('auth OK')
|
let _auth = await auth()
|
||||||
var _pulled_data = await pull()
|
if(_auth){
|
||||||
while(_pulled_data !== null){
|
global.logger.info('auth OK')
|
||||||
if(_pulled_data !== null){
|
var _pulled_data = await pull()
|
||||||
if(_pulled_data.success){
|
while(_pulled_data !== null){
|
||||||
var d = _pulled_data.data
|
if(_pulled_data !== null){
|
||||||
if('cluster' in d){
|
if(_pulled_data.success){
|
||||||
pulled_data['consumer'] = d['cluster']['consumer']
|
var d = _pulled_data.data
|
||||||
pulled_data['status'] = d['cluster']['status']
|
if('cluster' in d){
|
||||||
}
|
pulled_data['consumer'] = d['cluster']['consumer']
|
||||||
if('monitor' in d){
|
pulled_data['status'] = d['cluster']['status']
|
||||||
var m = d['monitor'][config.MONITOR_ID]
|
|
||||||
Object.entries(m).forEach(([key, value]) => {
|
|
||||||
// wenn 'monitor' nicht in pulled_data ist das der erste pull, dann alle status in ALARMiator abgleichen (betrifft hautsächlich den EB/NEB status)
|
|
||||||
if(!('monitor' in pulled_data) || ('monitor' in pulled_data && value.status !== pulled_data['monitor'][key]['status'])){
|
|
||||||
onStateChange(value.id,value.status )
|
|
||||||
}
|
}
|
||||||
});
|
if('monitor' in d){
|
||||||
pulled_data['monitor'] = d['monitor'][config.MONITOR_ID]
|
var m = d['monitor'][config.MONITOR_ID]
|
||||||
|
Object.entries(m).forEach(([key, value]) => {
|
||||||
|
// wenn 'monitor' nicht in pulled_data ist das der erste pull, dann alle status in ALARMiator abgleichen (betrifft hautsächlich den EB/NEB status)
|
||||||
|
if(!('monitor' in pulled_data) || ('monitor' in pulled_data && value.status !== pulled_data['monitor'][key]['status'])){
|
||||||
|
onStateChange(value.id,value.status )
|
||||||
|
}
|
||||||
|
});
|
||||||
|
pulled_data['monitor'] = d['monitor'][config.MONITOR_ID]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_pulled_data = await pull()
|
||||||
|
if(_pulled_data === null){
|
||||||
|
global.logger.debug('_pulled_data === null, reauth')
|
||||||
|
_auth = await auth()
|
||||||
|
_pulled_data = await pull()
|
||||||
|
if(_pulled_data === null){
|
||||||
|
global.logger.debug('_pulled_data === null after reauth, EXIT!!')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_pulled_data = await pull()
|
}catch(err){
|
||||||
if(_pulled_data === null){
|
console.error(err);
|
||||||
global.logger.debug('_pulled_data === null, reauth')
|
|
||||||
_auth = await auth()
|
|
||||||
_pulled_data = await pull()
|
|
||||||
if(_pulled_data === null){
|
|
||||||
global.logger.debug('_pulled_data === null after reauth, EXIT!!')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
await sleep(10000);
|
||||||
|
global.logger.info('auth mit API_KEY war nicht erfolgreich. Service ist gestoppt und startet nicht mehr automatisch??')
|
||||||
}
|
}
|
||||||
global.logger.info('auth mit API_KEY war nicht erfolgreich. Service ist gestoppt und startet nicht mehr automatisch??')
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user