Skip to content

zhoro/ndce

Repository files navigation

About the project

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

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.

Getting started

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.

Usage

  • initDatabaseSample.ts - example how to initialize or fill the database with sample data
  • start.ts - sample commands execution
  • exCron.ts - sample cron job execution
  • ex* - examples for different commands

Contact

email: 'andy@urlog.net'

project link: 'https://github.com/zhoro/ndce'

License

Distributed under the MIT License. See license.txt for more information.

About

Network device command execution.

Topics

Resources

License

Stars

Watchers

Forks