This is a simple project to execute different commands on a remote network devices using telnet protocol. Stores the results in a database.
Supported devices:
- BDCOM OLTs
Supported BDCOM commands:
- enable
- show cpu
- show epon|gpon inactive onu
- show epon|gpon interface epon x/y:z onu ctc opt
- show epon|gpon onu information interface epon x/y
- show epon|gpon optical-transceiver-diagnostic interface epon x/y
- show mac-address-table dynamic
- show mac-address-table int x y/z:w
- show int status x/y:z
New commands can be easily added by extending the src/code/devices
modules.
Create .env file with the following content:
DEBUG_MODE=ndce:main,ndce:network-device,ndce:telnet-transport,ndce:exShEponOnuInfoInterface
CLIENT_USERNAME=admin-x
CLIENT_PASSWORD=password-y
Where CLIENT_USERNAME and CLIENT_PASSWORD are the default credentials for the network device. Also set the following DB environment variables (example for postgresql):
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"
Apply migrations:
npx prisma migrate deploy --schema=./node_modules/@zhoro/ndce/prisma/schema.prisma
In your code import the PrismaClient class and create an instance of it:
import {PrismaClient} from '@zhoro/ndce';
const prisma = new PrismaClient();
For more information about Prisma setup environment see here.
initDatabaseSample.ts
- example how to initialize or fill the database with sample datastart.ts
- sample commands executionexCron.ts
- sample cron job executionex*
- examples for different commands
email: 'andy@urlog.net'
project link: 'https://github.com/zhoro/ndce'
Distributed under the MIT License. See license.txt
for more information.