replace delay.js with timers/promises
This commit is contained in:
+2
-2
@@ -35,7 +35,6 @@ const apps = require('./apps.js'),
|
||||
constants = require('./constants.js'),
|
||||
cron = require('./cron.js'),
|
||||
debug = require('debug')('box:cloudron'),
|
||||
delay = require('./delay.js'),
|
||||
dns = require('./dns.js'),
|
||||
dockerProxy = require('./dockerproxy.js'),
|
||||
eventlog = require('./eventlog.js'),
|
||||
@@ -54,6 +53,7 @@ const apps = require('./apps.js'),
|
||||
shell = require('./shell.js'),
|
||||
sysinfo = require('./sysinfo.js'),
|
||||
tasks = require('./tasks.js'),
|
||||
timers = require('timers/promises'),
|
||||
users = require('./users.js');
|
||||
|
||||
const REBOOT_CMD = path.join(__dirname, 'scripts/reboot.sh');
|
||||
@@ -85,7 +85,7 @@ async function onActivated(options) {
|
||||
|
||||
// disable responding to api calls via IP to not leak domain info. this is carefully placed as the last item, so it buys
|
||||
// the UI some time to query the dashboard domain in the restore code path
|
||||
await delay(30000);
|
||||
await timers.setTimeout(30000);
|
||||
await reverseProxy.writeDefaultConfig({ activated :true });
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
exports = module.exports = delay;
|
||||
|
||||
const assert = require('assert');
|
||||
|
||||
function delay(msecs) {
|
||||
assert.strictEqual(typeof msecs, 'number');
|
||||
|
||||
return new Promise(function (resolve) {
|
||||
setTimeout(resolve, msecs);
|
||||
});
|
||||
}
|
||||
+2
-2
@@ -37,7 +37,6 @@ const apps = require('./apps.js'),
|
||||
BoxError = require('./boxerror.js'),
|
||||
constants = require('./constants.js'),
|
||||
debug = require('debug')('box:docker'),
|
||||
delay = require('./delay.js'),
|
||||
Docker = require('dockerode'),
|
||||
paths = require('./paths.js'),
|
||||
promiseRetry = require('./promise-retry.js'),
|
||||
@@ -46,6 +45,7 @@ const apps = require('./apps.js'),
|
||||
shell = require('./shell.js'),
|
||||
safe = require('safetydance'),
|
||||
system = require('./system.js'),
|
||||
timers = require('timers/promises'),
|
||||
volumes = require('./volumes.js'),
|
||||
_ = require('underscore');
|
||||
|
||||
@@ -648,7 +648,7 @@ async function update(name, memory, memorySwap) {
|
||||
for (let times = 0; times < 10; times++) {
|
||||
const [error] = await safe(shell.promises.spawn(`update(${name})`, '/usr/bin/docker', args, { }));
|
||||
if (!error) return;
|
||||
await delay(60 * 1000);
|
||||
await timers.setTimeout(60 * 1000);
|
||||
}
|
||||
|
||||
throw new BoxError(BoxError.DOCKER_ERROR, 'Unable to update container');
|
||||
|
||||
+2
-2
@@ -13,7 +13,6 @@ const apps = require('./apps.js'),
|
||||
BoxError = require('./boxerror.js'),
|
||||
constants = require('./constants.js'),
|
||||
debug = require('debug')('box:platform'),
|
||||
delay = require('./delay.js'),
|
||||
fs = require('fs'),
|
||||
infra = require('./infra_version.js'),
|
||||
locker = require('./locker.js'),
|
||||
@@ -23,6 +22,7 @@ const apps = require('./apps.js'),
|
||||
services = require('./services.js'),
|
||||
shell = require('./shell.js'),
|
||||
tasks = require('./tasks.js'),
|
||||
timers = require('timers/promises'),
|
||||
volumes = require('./volumes.js'),
|
||||
_ = require('underscore');
|
||||
|
||||
@@ -74,7 +74,7 @@ async function start(options) {
|
||||
const retry = error.reason === BoxError.DATABASE_ERROR && (error.code === 'PROTOCOL_CONNECTION_LOST' || error.code === 'ECONNREFUSED');
|
||||
debug(`Failed to start services. retry=${retry} (attempt ${attempt}): ${error.message}`);
|
||||
if (!retry) throw error; // refuse to start
|
||||
await delay(10000);
|
||||
await timers.setTimeout(10000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
exports = module.exports = promiseRetry;
|
||||
|
||||
const assert = require('assert'),
|
||||
delay = require('./delay.js'),
|
||||
timers = require('timers/promises'),
|
||||
util = require('util');
|
||||
|
||||
async function promiseRetry(options, asyncFunction) {
|
||||
@@ -19,7 +19,7 @@ async function promiseRetry(options, asyncFunction) {
|
||||
if (i === times - 1) throw error;
|
||||
if (options.retry && !options.retry(error)) throw error; // no more retry
|
||||
if (options.debug) options.debug(`Attempt ${i+1} failed. Will retry: ${error.message}`);
|
||||
await delay(interval);
|
||||
await timers.setTimeout(interval);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('./common.js'),
|
||||
delay = require('../../delay.js'),
|
||||
expect = require('expect.js'),
|
||||
superagent = require('superagent'),
|
||||
timers = require('timers/promises'),
|
||||
tokens = require('../../tokens.js');
|
||||
|
||||
describe('REST API', function () {
|
||||
@@ -93,7 +93,7 @@ describe('REST API', function () {
|
||||
.set('Authorization', 'Bearer ' + token2.accessToken);
|
||||
expect(response.statusCode).to.be(200);
|
||||
|
||||
await delay(3000); // wait for token to expire
|
||||
await timers.setTimeout(3000); // wait for token to expire
|
||||
|
||||
const response2 = await superagent.get(`${serverUrl}/api/v1/users/${user.id}`)
|
||||
.set('Authorization', 'Bearer ' + token2.accessToken)
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
const constants = require('../../constants.js'),
|
||||
database = require('../../database.js'),
|
||||
delay = require('../../delay.js'),
|
||||
expect = require('expect.js'),
|
||||
fs = require('fs'),
|
||||
mailer = require('../../mailer.js'),
|
||||
@@ -13,6 +12,7 @@ const constants = require('../../constants.js'),
|
||||
support = require('../../support.js'),
|
||||
superagent = require('superagent'),
|
||||
tasks = require('../../tasks.js'),
|
||||
timers = require('timers/promises'),
|
||||
tokens = require('../../tokens.js');
|
||||
|
||||
exports = module.exports = {
|
||||
@@ -75,7 +75,7 @@ async function setup() {
|
||||
.send({ domainConfig: { provider: 'noop', domain: exports.dashboardDomain, config: {}, tlsConfig: { provider: 'fallback' } } });
|
||||
expect(response.status).to.eql(200);
|
||||
|
||||
await delay(2000);
|
||||
await timers.setTimeout(2000);
|
||||
|
||||
// create admin
|
||||
response = await superagent.post(`${serverUrl}/api/v1/cloudron/activate`)
|
||||
@@ -119,7 +119,7 @@ function clearMailQueue() {
|
||||
}
|
||||
|
||||
async function checkMails(number) {
|
||||
await delay(1000);
|
||||
await timers.setTimeout(1000);
|
||||
expect(mailer._mailQueue.length).to.equal(number);
|
||||
clearMailQueue();
|
||||
}
|
||||
@@ -133,7 +133,7 @@ async function waitForTask(taskId) {
|
||||
if (result.success) return result;
|
||||
throw new Error(`Task ${taskId} failed: ${result.error.message} - ${result.error.stack}`);
|
||||
}
|
||||
await delay(2000);
|
||||
await timers.setTimeout(2000);
|
||||
console.log(`Waiting for task to ${taskId} finish`);
|
||||
}
|
||||
throw new Error(`Task ${taskId} never finished`);
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
|
||||
const common = require('./common.js');
|
||||
|
||||
const delay = require('../../delay.js'),
|
||||
expect = require('expect.js'),
|
||||
superagent = require('superagent');
|
||||
const expect = require('expect.js'),
|
||||
superagent = require('superagent'),
|
||||
timers = require('timers/promises');
|
||||
|
||||
const DOMAIN = 'example-server-test.com';
|
||||
|
||||
@@ -27,7 +27,7 @@ describe('Provision', function () {
|
||||
|
||||
if (response.status === 200 && !response.body.setup.active && response.body.setup.errorMessage === '' && response.body.adminFqdn) return;
|
||||
|
||||
await delay(4000);
|
||||
await timers.setTimeout(4000);
|
||||
}
|
||||
|
||||
throw new Error(`Setup did not complete. status: ${response.status} body: ${JSON.stringify(response.body)}`);
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
const backupCleaner = require('../backupcleaner.js'),
|
||||
backups = require('../backups.js'),
|
||||
common = require('./common.js'),
|
||||
delay = require('../delay.js'),
|
||||
expect = require('expect.js'),
|
||||
moment = require('moment'),
|
||||
settings = require('../settings.js'),
|
||||
tasks = require('../tasks.js');
|
||||
tasks = require('../tasks.js'),
|
||||
timers = require('timers/promises');
|
||||
|
||||
describe('backup cleaner', function () {
|
||||
const { setup, cleanup, app } = common;
|
||||
@@ -226,7 +226,7 @@ describe('backup cleaner', function () {
|
||||
|
||||
// eslint-disable-next-line no-constant-condition
|
||||
while (true) {
|
||||
await delay(1000);
|
||||
await timers.setTimeout(1000);
|
||||
|
||||
const p = await tasks.get(taskId);
|
||||
|
||||
@@ -247,7 +247,7 @@ describe('backup cleaner', function () {
|
||||
BACKUP_0_BOX.dependsOn = [ BACKUP_0_APP_0.id, BACKUP_0_APP_1.id ];
|
||||
BACKUP_0_BOX.id = await backups.add(BACKUP_0_BOX);
|
||||
|
||||
await delay(2000); // space out backups
|
||||
await timers.setTimeout(2000); // space out backups
|
||||
|
||||
BACKUP_1_APP_0.id = await backups.add(BACKUP_1_APP_0);
|
||||
BACKUP_1_APP_1.id = await backups.add(BACKUP_1_APP_1);
|
||||
@@ -284,7 +284,7 @@ describe('backup cleaner', function () {
|
||||
backup.id = await backups.add(backup);
|
||||
}
|
||||
|
||||
await delay(2000); // wait for expiration
|
||||
await timers.setTimeout(2000); // wait for expiration
|
||||
|
||||
await cleanupBackups();
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
const backups = require('../backups.js'),
|
||||
common = require('./common.js'),
|
||||
delay = require('../delay.js'),
|
||||
expect = require('expect.js'),
|
||||
fs = require('fs'),
|
||||
os = require('os'),
|
||||
path = require('path'),
|
||||
settings = require('../settings.js'),
|
||||
tasks = require('../tasks.js');
|
||||
tasks = require('../tasks.js'),
|
||||
timers = require('timers/promises');
|
||||
|
||||
describe('backuptask', function () {
|
||||
const { setup, cleanup } = common;
|
||||
@@ -48,7 +48,7 @@ describe('backuptask', function () {
|
||||
|
||||
// eslint-disable-next-line no-constant-condition
|
||||
while (true) {
|
||||
await delay(1000);
|
||||
await timers.setTimeout(1000);
|
||||
|
||||
const p = await tasks.get(taskId);
|
||||
|
||||
@@ -61,7 +61,7 @@ describe('backuptask', function () {
|
||||
if (result.length !== 1) throw new Error('result is not of length 1');
|
||||
|
||||
// the task progress and the db entry is set in the worker. wait for 2 seconds for backup lock to get released in parent process
|
||||
await delay(2000);
|
||||
await timers.setTimeout(2000);
|
||||
|
||||
return result[0];
|
||||
}
|
||||
|
||||
+26
-26
@@ -3,7 +3,6 @@
|
||||
const apps = require('../apps.js'),
|
||||
constants = require('../constants.js'),
|
||||
database = require('../database.js'),
|
||||
delay = require('../delay.js'),
|
||||
domains = require('../domains.js'),
|
||||
expect = require('expect.js'),
|
||||
fs = require('fs'),
|
||||
@@ -13,6 +12,7 @@ const apps = require('../apps.js'),
|
||||
paths = require('../paths.js'),
|
||||
settings = require('../settings.js'),
|
||||
tasks = require('../tasks.js'),
|
||||
timers = require('timers/promises'),
|
||||
users = require('../users.js');
|
||||
|
||||
const manifest = {
|
||||
@@ -45,30 +45,30 @@ const manifest = {
|
||||
|
||||
// copied from the proxy app CloudronManifest.json
|
||||
const proxyAppManifest = {
|
||||
"id": "io.cloudron.builtin.appproxy",
|
||||
"title": "App Proxy",
|
||||
"author": "Cloudron Team",
|
||||
"version": "1.0.0",
|
||||
"upstreamVersion": "1.0.0",
|
||||
"description": "file://DESCRIPTION.md",
|
||||
"tagline": "Proxy an app through Cloudron",
|
||||
"tags": [ "proxy", "external" ],
|
||||
"healthCheckPath": "/",
|
||||
"httpPort": 3000,
|
||||
"minBoxVersion": "7.3.0",
|
||||
"dockerImage": "istobeignored",
|
||||
"manifestVersion": 2,
|
||||
"multiDomain": true,
|
||||
"website": "https://cloudron.io",
|
||||
"documentationUrl": "https://docs.cloudron.io/dashboard/#app-proxy",
|
||||
"forumUrl": "https://forum.cloudron.io",
|
||||
"contactEmail": "support@cloudron.io",
|
||||
"icon": "file://logo.png",
|
||||
"addons": {},
|
||||
"mediaLinks": [
|
||||
"https://screenshots.cloudron.io/io.cloudron.builtin.appproxy/diagram.png"
|
||||
],
|
||||
"changelog": "file://CHANGELOG.md"
|
||||
'id': 'io.cloudron.builtin.appproxy',
|
||||
'title': 'App Proxy',
|
||||
'author': 'Cloudron Team',
|
||||
'version': '1.0.0',
|
||||
'upstreamVersion': '1.0.0',
|
||||
'description': 'file://DESCRIPTION.md',
|
||||
'tagline': 'Proxy an app through Cloudron',
|
||||
'tags': [ 'proxy', 'external' ],
|
||||
'healthCheckPath': '/',
|
||||
'httpPort': 3000,
|
||||
'minBoxVersion': '7.3.0',
|
||||
'dockerImage': 'istobeignored',
|
||||
'manifestVersion': 2,
|
||||
'multiDomain': true,
|
||||
'website': 'https://cloudron.io',
|
||||
'documentationUrl': 'https://docs.cloudron.io/dashboard/#app-proxy',
|
||||
'forumUrl': 'https://forum.cloudron.io',
|
||||
'contactEmail': 'support@cloudron.io',
|
||||
'icon': 'file://logo.png',
|
||||
'addons': {},
|
||||
'mediaLinks': [
|
||||
'https://screenshots.cloudron.io/io.cloudron.builtin.appproxy/diagram.png'
|
||||
],
|
||||
'changelog': 'file://CHANGELOG.md'
|
||||
};
|
||||
|
||||
const domain = {
|
||||
@@ -249,7 +249,7 @@ function clearMailQueue() {
|
||||
}
|
||||
|
||||
async function checkMails(number) {
|
||||
await delay(1000);
|
||||
await timers.setTimeout(1000);
|
||||
expect(mailer._mailQueue.length).to.equal(number);
|
||||
const emails = mailer._mailQueue;
|
||||
clearMailQueue();
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
|
||||
const common = require('./common.js'),
|
||||
database = require('../database.js'),
|
||||
delay = require('../delay.js'),
|
||||
eventlog = require('../eventlog.js'),
|
||||
expect = require('expect.js'),
|
||||
notifications = require('../notifications.js');
|
||||
notifications = require('../notifications.js'),
|
||||
timers = require('timers/promises');
|
||||
|
||||
describe('Eventlog', function () {
|
||||
const { setup, cleanup } = common;
|
||||
@@ -89,7 +89,7 @@ describe('Eventlog', function () {
|
||||
let result = await eventlog.get(loginEventId);
|
||||
const oldCreationTime = result.creationTime;
|
||||
|
||||
await delay(2000);
|
||||
await timers.setTimeout(2000);
|
||||
result = await eventlog.upsertLoginEvent('user.login', { ip: '1.2.3.4' }, { appId: 'thatapp' });
|
||||
expect(result).to.equal(loginEventId);
|
||||
|
||||
@@ -117,7 +117,7 @@ describe('Eventlog', function () {
|
||||
await notifications._add('title', 'some message', { eventId });
|
||||
}
|
||||
|
||||
await delay(3000);
|
||||
await timers.setTimeout(3000);
|
||||
|
||||
const id = await eventlog.add(eventlog.ACTION_USER_LOGIN, { ip: '1.2.3.4' }, { appId: 'thatapp' });
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
|
||||
const BoxError = require('../boxerror.js'),
|
||||
common = require('./common.js'),
|
||||
delay = require('../delay.js'),
|
||||
expect = require('expect.js'),
|
||||
notifications = require('../notifications.js'),
|
||||
safe = require('safetydance');
|
||||
safe = require('safetydance'),
|
||||
timers = require('timers/promises');
|
||||
|
||||
const EVENT_0 = {
|
||||
id: 'event_0',
|
||||
@@ -34,7 +34,7 @@ describe('Notifications', function () {
|
||||
expect(error).to.equal(null);
|
||||
expect(id).to.be.a('string');
|
||||
notificationIds.push(id);
|
||||
await delay(1000);
|
||||
await timers.setTimeout(1000);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user