Ошибка аутентификации сеанса Jelastic API "не аутентифицирована (другой ключ сеанса)"
Я создал приведенный ниже скрипт для извлечения статистики из API Jelastic, чтобы я мог собирать статистику ресурсов за определенное время. Конечная цель - записать данные в электронную таблицу.
Ниже приведен мой код, который обрабатывает аутентификацию, а затем делает запрос GetSumStats
,
Если я запускаю код, некоторое время ожидаемые результаты ожидаются.
{
iops_used: 0,
duration: 3600,
cpumhz: 7,
start: '',
disk: 7857,
mem: 725212,
cpu: 24002,
capacity: 9,
net: { in_int: 96004, out_int: 96004, in_ext: 9181, out_ext: 9395 },
chanksused: 7,
nodeid: 'sum'
}
Но в других случаях запрос завершается ошибкой.
{ result: 702,
source: 'JEL',
error: 'not authenticated (different session key)',
stats: [] }
Это проблема времени или известная проблема? Может быть, скрипт слишком быстрый, и API еще не знает об идентификаторе сеанса? Вот почему я представил setTimeout
var sites = require('./sites.json').sites,
credentials = require('./credentials.json'),
Client = require('node-rest-client').Client,
util = require('./util.js');
(function () {
"use strict";
var client = new Client();
var session;
login();
function login() {
var args = {
parameters: {
appid: sites[2].appId,
login: credentials.email,
password: credentials.password
}
};
client.registerMethod("login", "https://app.j.hostapi.co.uk/1.0/users/authentication/rest/signin", "GET");
client.methods.login(args, function (data, response) {
// parsed response body as js object
data = util.parseResponse(data);
session = data.session;
console.log(session);
// Tried to pause here in case it was too quick
setTimeout(function() {
getSumStats();
}, 3000);
});
}
function logout() {
var args = {
parameters: {
appid: sites[2].appId,
session: session
}
};
client.registerMethod("logout", "https://app.j.hostapi.co.uk/1.0/users/authentication/rest/signout", "GET");
client.methods.logout(args, function (data, response) {
// parsed response body as js object
data = util.parseResponse(data);
console.log(data);
// raw response
//console.log(response);
});
}
// Failure here
function getSumStats() {
var args = {
parameters: {
domain: sites[2].domain,
session: session,
duration: 3600
}
};
client.registerMethod("getSumStats", "https://app.j.hostapi.co.uk/1.0/environment/control/rest/getsumstat", "GET");
client.methods.getSumStats(args, function (data, response) {
// parsed response body as js object
data = util.parseResponse(data);
console.log(data.stats);
logout();
});
}
})();
1 ответ
Вы ограничены 1 сеансом одновременного входа в систему. Логин закрепляется IP / User Agent.
Если вам нужно создать несколько одновременных сеансов входа в систему, вы можете попробовать использовать уникальный UA для каждого сеанса, чтобы избежать конфликтов.