Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
RunOnFluxBot committed Dec 4, 2024
1 parent a309a05 commit bf9b453
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 63 deletions.
12 changes: 9 additions & 3 deletions services/appsService.js
Original file line number Diff line number Diff line change
Expand Up @@ -9093,6 +9093,7 @@ async function trySpawningGlobalApplication() {
log.info(`trySpawningGlobalApplication - Found ${numberOfGlobalApps} that are missing instances on the network.`);

let appToRun = null;
let appToRunAux = null;
let minInstances = null;
let appFromAppsToBeCheckedLater = false;
const appIndex = appsToBeCheckedLater.findIndex((app) => app.timeToCheck >= Date.now());
Expand All @@ -9113,8 +9114,13 @@ async function trySpawningGlobalApplication() {
return;
}
log.info(`trySpawningGlobalApplication - Found ${globalAppNamesLocation.length} apps that are missing instances on the network and can be selected to try to spawn on my node.`);
const random = Math.floor(Math.random() * globalAppNamesLocation.length);
const appToRunAux = globalAppNamesLocation[random];
let random = Math.floor(Math.random() * globalAppNamesLocation.length);
appToRunAux = globalAppNamesLocation[random];
const filterAppsWithNyNodeIP = globalAppNamesLocation.filter((app) => app.nodes.find((ip) => ip === myIP));
if (filterAppsWithNyNodeIP.length > 0) {
random = Math.floor(Math.random() * filterAppsWithNyNodeIP.length);
appToRunAux = filterAppsWithNyNodeIP[random];
}
appToRun = appToRunAux.name;
minInstances = appToRunAux.required;
log.info(`trySpawningGlobalApplication - Application ${appToRun} selected to try to spawn. Reported as been running in ${appToRunAux.actual} instances and ${appToRunAux.required} are required.`);
Expand Down Expand Up @@ -9274,7 +9280,7 @@ async function trySpawningGlobalApplication() {
await verifyRepository(componentToInstall.repotag, { repoauth: componentToInstall.repoauth, architecture });
}

if (!appFromAppsToBeCheckedLater) {
if (!appFromAppsToBeCheckedLater && appToRunAux.nodes.length === 0) {
const tier = await generalService.nodeTier();
const appHWrequirements = totalAppHWRequirements(appSpecifications, tier);
if (tier === 'bamf' && appHWrequirements.cpu < 3 && appHWrequirements.ram < 6000 && appHWrequirements.hdd < 150) {
Expand Down
3 changes: 2 additions & 1 deletion services/benchmarkService.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ let response = messageHelper.createErrorMessage();
let benchdClient = null;

async function buildBenchdClient() {
const fluxbenchdPath = '/dat/usr/lib/fluxbenchd';
const homeDirPath = path.join(__dirname, '../../../../');
const fluxbenchdPath = path.join(homeDirPath, '.fluxbenchmark');

const exists = await fs.stat(fluxbenchdPath).catch(() => false);

Expand Down
98 changes: 51 additions & 47 deletions services/syncthingService.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,39 +51,38 @@ const stc = new FluxController();
* @returns {Promise<(string | null)>} config gile (XML).
*/
async function getConfigFile() {
// const homedir = os.homedir();
// const configDir = path.join(homedir, '.config');
// const syncthingDir = path.join(configDir, 'syncthing');
// const configFile = path.join(syncthingDir, 'config.xml');
const configFile = '/dat/usr/lib/syncthing/config.xml';
const homedir = os.homedir();
const configDir = path.join(homedir, '.config');
const syncthingDir = path.join(configDir, 'syncthing');
const configFile = path.join(syncthingDir, 'config.xml');

// const user = os.userInfo().username;
// const owner = `${user}:${user}`;
const user = os.userInfo().username;
const owner = `${user}:${user}`;

// As syncthing is running as root, we need to change owenership to running user
// const { error: chownConfigDirError } = await serviceHelper.runCommand('chown', {
// runAsRoot: true,
// logError: false,
// params: [owner, configDir],
// });
const { error: chownConfigDirError } = await serviceHelper.runCommand('chown', {
runAsRoot: true,
logError: false,
params: [owner, configDir],
});

// if (chownConfigDirError) return null;
if (chownConfigDirError) return null;

// const { error: chownSyncthingError } = await serviceHelper.runCommand('chown', {
// runAsRoot: true,
// logError: false,
// params: [owner, syncthingDir],
// });
const { error: chownSyncthingError } = await serviceHelper.runCommand('chown', {
runAsRoot: true,
logError: false,
params: [owner, syncthingDir],
});

// if (chownSyncthingError) return null;
if (chownSyncthingError) return null;

// const { error: chmodError } = await serviceHelper.runCommand('chmod', {
// runAsRoot: true,
// logError: false,
// params: ['644', configFile],
// });
const { error: chmodError } = await serviceHelper.runCommand('chmod', {
runAsRoot: true,
logError: false,
params: ['644', configFile],
});

// if (chmodError) return null;
if (chmodError) return null;

let result = null;
// this should never reject as chown would error first but just in case
Expand Down Expand Up @@ -2495,11 +2494,10 @@ async function runSyncthingSentinel() {
log.error('Unable to get syncthing deviceId. Reconfiguring syncthing.');
await stopSyncthing();
await installSyncthingIdempotently();
// await configureDirectories();
await configureDirectories();

// const homedir = os.homedir();
// const syncthingHome = path.join(homedir, '.config/syncthing');
const syncthingHome = '/dat/usr/lib/syncthing';
const homedir = os.homedir();
const syncthingHome = path.join(homedir, '.config/syncthing');
const logFile = path.join(syncthingHome, 'syncthing.log');

if (stc.aborted) return 0;
Expand All @@ -2517,26 +2515,32 @@ async function runSyncthingSentinel() {
// adding old spawn with shell in the interim.

childProcess.spawn(
'nohup',
[
'syncthing',
'--logfile',
logFile,
'--logflags=3',
'--log-max-old-files=2',
'--log-max-size=26214400',
'--allow-newer-config',
'--no-browser',
'--home',
syncthingHome,
],
{
detached: true,
stdio: 'ignore',
env: { HOME: syncthingHome },
},
`sudo nohup syncthing --logfile ${logFile} --logflags=3 --log-max-old-files=2 --log-max-size=26214400 --allow-newer-config --no-browser --home ${syncthingHome} >/dev/null 2>&1 </dev/null &`,
{ shell: true },
).unref();

// childProcess.spawn(
// 'sudo',
// [
// 'nohup',
// 'syncthing',
// '--logfile',
// logFile,
// '--logflags=3',
// '--log-max-old-files=2',
// '--log-max-size=26214400',
// '--allow-newer-config',
// '--no-browser',
// '--home',
// syncthingHome,
// ],
// {
// detached: true,
// stdio: 'ignore',
// // uid: 0,
// },
// ).unref();

// let syncthing set itself up
await stc.sleep(5 * 1000);
}
Expand Down
10 changes: 1 addition & 9 deletions services/systemService.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,16 +520,8 @@ async function monitorSystem() {
async function mongoDBConfig() {
log.info('MongoDB file config verification...');
try {
// 6a6fa is latest image file
// cdf6e is older image file
// other 2 ar existing fluxOS files
const hashCurrent = hash(await fs.readFile('/etc/mongod.conf'));
const vailidHashes = [
'6a6fa72bf83ee5d8f665bed2119e649366f47645',
'cdf6ed6515ac061f5e6b6084af91767f42cd79d7',
'4646c649230b8125c7894d618313039f20d1901b',
'1b20cbacf63c4400d0bf90188615db78b9a7602e',
];
const vailidHashes = ['4646c649230b8125c7894d618313039f20d1901b', '1b20cbacf63c4400d0bf90188615db78b9a7602e'];
if (vailidHashes.indexOf(hashCurrent) !== -1) {
log.info('MongoDB config verification passed.');
return;
Expand Down
8 changes: 5 additions & 3 deletions services/utils/daemonConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ const os = require('node:os');
class DaemonConfig {
static daemonConfigPaths = {
linux: {
zelPath: 'flux.conf',
fluxPath: 'flux.conf',
zelPath: '.zelcash/zelcash.conf',
fluxPath: '.flux/flux.conf',
},
darwin: {
zelPath: 'Zelcash/zelcash.conf',
Expand All @@ -24,14 +24,16 @@ class DaemonConfig {

platform = process.platform;

homedir = os.homedir();

raw = '';

configElements = {};

constructor() {
switch (this.platform) {
case 'linux':
this.baseDir = '/dat/var/lib/fluxd';
this.baseDir = os.homedir();
break;
case 'darwin':
this.baseDir = path.join(os.homedir(), 'Library/Application Support');
Expand Down

0 comments on commit bf9b453

Please sign in to comment.