==== Vendor Questionnaire ==== 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: === Protocols === - telnet, ssh portnumbers\\ - preferences === Login === - user prompt\\ - password / passcode / phrase / key\\ - messages \\ - default modes possible (disabled, enabled, config, locked) === Node credentials === - rme user / passwd\\ - local user / passwd\\ - "enable" string\\ - other methods === Node prompts === - hostname\\ - enable mode\\ - possibility to 'disable' or only quit to go down one level or disconnect?\\ - config mode\\ - sub config sections === Hardware === - retrieve model\\ - retrieve modules \\ - action on model verification === OS version === - retrieve version\\ - subversions\\ - action on version mismatch\\ - action on subversion mismatch === OS files === - location\\ - filename conventions\\ - verification === Commit === - commit status\\ - action on pending commits\\ - commit verification\\ - action on commit verification failures\\ - commit command and tagging\\ - action on commit failures === Rollback === - rollback options\\ - default rollback actions (tagging)\\ - rollback command and tagging\\ - action on rollback unavailability\\ - action on rollback failure === Config file === - 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\\ === Config download === - download config / startup file commands\\ - config verification criteria\\ - action on config verification failure\\ - additional actions and commands on new config (eg vlan.txt) === Config upload === - config save to file options\\ - config upload options\\ - config upload timeout\\ - action on config upload failure\\ - when to upload config automatically? === Reload === - reload readiness criteria (eg registry)\\ - reload command and confirmations\\ - reload timeout \\ - reload verification commands\\ - action on reload verification failure === Commands === - 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 === Default confirmation action === - timeout before confirm\\ - just enter or….\\ - response timeout\\ - no response actions === File transfers === - 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 === Sample standard 'transactions' === - 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) === Import commands - execute commands in config mode === - 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 === Config save - upload active config after a change for future diff/report === - 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?)