Added format node disk

This commit is contained in:
Michele Marcucci 2021-12-09 15:34:37 +01:00
parent 47c76b5583
commit a3c92b32b6
6 changed files with 79 additions and 2 deletions

@ -1 +1 @@
Subproject commit c0d56f4c4d3eafdf01a8499ddff32d0fcb19506e
Subproject commit 09641151acd13f0f212ee6755b8bfa1ff724e3ca

18
backend/format_node_disk Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
# Stop node
screen -X -S node quit
sleep 10
# Umount disk
sudo umount /media/nvme
# Format disk
sudo mkfs.ext4 -F -j /dev/nvme0n1p1
# Mount back disk
sudo mount /dev/nvme0n1p1 /media/nvme
# Recreate Bitcoin directory
sudo mkdir /media/nvme/Bitcoin
sudo chown futurebit.futurebit /media/nvme/Bitcoin

17
backend/format_node_disk_fake Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
# Stop node
screen -X -S node quit
sleep 5
# Umount disk
echo "umounting disk"
# Format disk
echo "formatting disk"
# Mount back disk
echo "mounting back disk"
# Recreate Bitcoin directory
echo "recreating dir"

View File

@ -10,7 +10,7 @@
"node": ">= 8.x"
},
"scripts": {
"dev": "./node_modules/nodemon/bin/nodemon.js src/init.js | ./node_modules/.bin/bunyan",
"dev": "PORT=5001 ./node_modules/nodemon/bin/nodemon.js src/init.js | ./node_modules/.bin/bunyan",
"build": "pkg . --targets node8-linux-armv7 --no-bytecode",
"run-container": "docker run --rm -it -v \"$(pwd)\":/hostdir --entrypoint=/bin/bash orange"
},

View File

@ -0,0 +1,13 @@
module.exports.typeDefs = `
type NodeActions {
format: EmptyOutput!
}
`;
module.exports.resolvers = {
NodeActions: {
format (root, args, { dispatch }) {
return dispatch('api/node/format');
}
}
};

View File

@ -0,0 +1,29 @@
const { join } = require('path')
const { exec } = require('child_process')
const axios = require('axios')
module.exports = ({ define }) => {
define('format', async (payload, { knex, errors, utils }) => {
await formatDisk();
}, {
auth: true
})
}
function formatDisk () {
return new Promise((resolve, reject) => {
const scriptName = (process.env.NODE_ENV === 'production') ? 'format_node_disk' : 'format_node_disk_fake'
const scriptPath = join(__dirname, '..', '..', '..', '..', 'backend', scriptName)
exec(scriptPath, {}, (err, stdout) => {
if (err) {
reject(err)
} else {
try {
resolve();
} catch (err) {
reject(err)
}
}
})
})
}