In order to build a new vendor module, we need to get a good overview of the device / vendor. Here are some basic questions and properties whose answers need to be provided:
- telnet, ssh portnumbers
- preferences
- user prompt
- password / passcode / phrase / key
- messages
- default modes possible (disabled, enabled, config, locked)
- rme user / passwd
- local user / passwd
- “enable” string
- other methods
- hostname
- enable mode
- possibility to 'disable' or only quit to go down one level or disconnect?
- config mode
- sub config sections
- retrieve model
- retrieve modules
- action on model verification
- retrieve version
- subversions
- action on version mismatch
- action on subversion mismatch
- location
- filename conventions
- verification
- commit status
- action on pending commits
- commit verification
- action on commit verification failures
- commit command and tagging
- action on commit failures
- rollback options
- default rollback actions (tagging)
- rollback command and tagging
- action on rollback unavailability
- action on rollback failure
- save options (eg run to startup)
- save command and tagging
- startup / run verification commands
- action on pending startup / run verification failure
- startup options and commands
- ever-changing information in the configuration (for example timestamps) that will need to be filtered out for NCCM purposes?
- examples of configuration lines where credentials are shown and need to be censored
- download config / startup file commands
- config verification criteria
- action on config verification failure
- additional actions and commands on new config (eg vlan.txt)
- config save to file options
- config upload options
- config upload timeout
- action on config upload failure
- when to upload config automatically?
- reload readiness criteria (eg registry)
- reload command and confirmations
- reload timeout
- reload verification commands
- action on reload verification failure
- inter-command delay
- config mode verification
- config mode commands
- non-config command recognition
- action on non-config commands
- error and warning messages
- action on error messages
- action on warning messages
- timeout before confirm
- just enter or….
- response timeout
- no response actions
- tftp, sftp, ssh, other
- commands
- action on file transfer failure
- timeouts for transfers
- action on transfer timeout
- file integrity verification (eg. MD5)
- action on file integrity failure
- Config diff, verify the running config is unchanged from last change
- login
- hardware unchanged?
- os version unchanged?
- pending commits?
- running matches startup?
- upload config
- diff config against last saved(from change, confirmed by operator)
- login
- hardware unchanged?
- os version unchanged?
- pending commit?
- running matches startup?
- go into config mode
- issue commands, eval for warnings and errors
- validate commit
- commit and tag
- rollback if indicated by err / policy
- save as startup
- login
- hardware unchanged?
- os version unchanged?
- pending commits?
- running matches startup?
- save config and upload
- tag and store in database
Startup config - download startup config to node, save as startup
Reload node - restart node using startup config
File transfer - binary (OS) file download (and upload too?)