Browse Source

Get backup status (#40)

electrum-hidden-service
Mayank Chhabra 4 years ago
committed by GitHub
parent
commit
830902bedc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      README.md
  2. 5
      logic/disk.js
  3. 10
      logic/system.js
  4. 6
      routes/v1/system.js
  5. 1
      utils/const.js

1
README.md

@ -53,6 +53,7 @@ Set the following environment variables directly or by placing them in `.env` fi
| `UPDATE_STATUS_FILE` | Path to update status file | `/statuses/update-status.json` | | `UPDATE_STATUS_FILE` | Path to update status file | `/statuses/update-status.json` |
| `UPDATE_SIGNAL_FILE` | Path to write the update signal file | `/signals/update` | | `UPDATE_SIGNAL_FILE` | Path to write the update signal file | `/signals/update` |
| `UPDATE_LOCK_FILE` | Path to the update lock file | `/statuses/update-in-progress` | | `UPDATE_LOCK_FILE` | Path to the update lock file | `/statuses/update-in-progress` |
| `BACKUP_STATUS_FILE` | Path to backup status file | `/statuses/backup-status.json` |
### Step 3. Run manager ### Step 3. Run manager
```sh ```sh

5
logic/disk.js

@ -126,6 +126,10 @@ function writeUpdateSignalFile() {
return diskService.writeFile(constants.UPDATE_SIGNAL_FILE, 'true'); return diskService.writeFile(constants.UPDATE_SIGNAL_FILE, 'true');
} }
function readBackupStatusFile() {
return diskService.readJsonFile(constants.BACKUP_STATUS_FILE);
}
function readJWTPrivateKeyFile() { function readJWTPrivateKeyFile() {
return diskService.readFile(constants.JWT_PRIVATE_KEY_FILE); return diskService.readFile(constants.JWT_PRIVATE_KEY_FILE);
} }
@ -208,6 +212,7 @@ module.exports = {
writeUpdateSignalFile, writeUpdateSignalFile,
updateSignalFileExists, updateSignalFileExists,
updateLockFileExists, updateLockFileExists,
readBackupStatusFile,
readJWTPrivateKeyFile, readJWTPrivateKeyFile,
readJWTPublicKeyFile, readJWTPublicKeyFile,
writeJWTPrivateKeyFile, writeJWTPrivateKeyFile,

10
logic/system.js

@ -136,6 +136,15 @@ async function startUpdate() {
} }
} }
async function getBackupStatus() {
try {
const status = await diskLogic.readBackupStatusFile()
return status;
} catch (error) {
throw new NodeError('Unable to get backup status');
}
}
async function requestShutdown() { async function requestShutdown() {
try { try {
await diskLogic.shutdown(); await diskLogic.shutdown();
@ -163,6 +172,7 @@ module.exports = {
getAvailableUpdate, getAvailableUpdate,
getUpdateStatus, getUpdateStatus,
startUpdate, startUpdate,
getBackupStatus,
requestShutdown, requestShutdown,
requestReboot requestReboot
}; };

6
routes/v1/system.js

@ -44,6 +44,12 @@ router.post('/update', auth.jwt, safeHandler(async (req, res) => {
return res.status(constants.STATUS_CODES.OK).json(status); return res.status(constants.STATUS_CODES.OK).json(status);
})); }));
router.get('/backup-status', safeHandler(async (req, res) => {
const backup = await systemLogic.getBackupStatus();
return res.status(constants.STATUS_CODES.OK).json(backup);
}));
router.post('/shutdown', auth.jwt, safeHandler(async (req, res) => { router.post('/shutdown', auth.jwt, safeHandler(async (req, res) => {
const result = await systemLogic.requestShutdown(); const result = await systemLogic.requestShutdown();

1
utils/const.js

@ -17,6 +17,7 @@ module.exports = {
UPDATE_STATUS_FILE: process.env.UPDATE_STATUS_FILE || '/statuses/update-status.json', UPDATE_STATUS_FILE: process.env.UPDATE_STATUS_FILE || '/statuses/update-status.json',
UPDATE_SIGNAL_FILE: process.env.UPDATE_SIGNAL_FILE || '/signals/update', UPDATE_SIGNAL_FILE: process.env.UPDATE_SIGNAL_FILE || '/signals/update',
UPDATE_LOCK_FILE: process.env.UPDATE_LOCK_FILE || '/statuses/update-in-progress', UPDATE_LOCK_FILE: process.env.UPDATE_LOCK_FILE || '/statuses/update-in-progress',
BACKUP_STATUS_FILE: process.env.BACKUP_STATUS_FILE || '/statuses/backup-status.json',
STATUS_CODES: { STATUS_CODES: {
ACCEPTED: 202, ACCEPTED: 202,
BAD_GATEWAY: 502, BAD_GATEWAY: 502,

Loading…
Cancel
Save