You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.3 KiB
51 lines
1.3 KiB
2 years ago
|
import express from 'express';
|
||
|
|
||
|
import { getLocalHostUUID, query } from '../lib/accessModule';
|
||
|
import { stderr, stdoutVar } from '../lib/shell';
|
||
|
|
||
|
import { setMapNetwork } from '../lib/request_handlers/command';
|
||
|
import { configStriker } from '../lib/request_handlers/host';
|
||
|
import { getNetworkInterface } from '../lib/request_handlers/network-interface';
|
||
|
|
||
|
const router = express.Router();
|
||
|
|
||
|
router.use(async (request, response, next) => {
|
||
|
const localHostUuid = getLocalHostUUID();
|
||
|
|
||
|
let rows: [[string]];
|
||
|
|
||
|
try {
|
||
|
rows = await query(
|
||
|
`SELECT variable_value
|
||
|
FROM variables
|
||
|
WHERE variable_name = 'system::configured'
|
||
|
AND variable_source_table = 'hosts'
|
||
|
AND variable_source_uuid = '${localHostUuid}'
|
||
|
LIMIT 1;`,
|
||
|
);
|
||
|
} catch (error) {
|
||
|
stderr(`Failed to get system configured flag; CAUSE: ${error}`);
|
||
|
|
||
|
return response.status(500).send();
|
||
|
}
|
||
|
|
||
|
stdoutVar(rows, `system::configured=`);
|
||
|
|
||
|
if (rows.length === 1 && rows[0][0] === '1') {
|
||
|
stderr(
|
||
|
`The init endpoints cannot be used after initializing the local striker`,
|
||
|
);
|
||
|
|
||
|
return response.status(401).send();
|
||
|
}
|
||
|
|
||
|
return next();
|
||
|
});
|
||
|
|
||
|
router
|
||
|
.get('/network-interface', getNetworkInterface)
|
||
|
.post('/', configStriker)
|
||
|
.put('/set-map-network', setMapNetwork);
|
||
|
|
||
|
export default router;
|