Skip to content

Commit

Permalink
Support for Datacom DmSwitch.
Browse files Browse the repository at this point in the history
  • Loading branch information
udhos committed Jun 14, 2017
1 parent 96473ec commit 2bdccff
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 5 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,10 @@ Please send pull requests for new plataforms.
- [Cisco IOS](https://github.com/udhos/jazigo/blob/master/dev/model_cisco.go)
- [Cisco IOS XR](https://github.com/udhos/jazigo/blob/master/dev/model_cisco_iosxr.go)
- [Cisco NGA](https://github.com/udhos/jazigo/blob/master/dev/model_cisco_nga.go)
- [Datacom DmSwitch](https://github.com/udhos/jazigo/blob/master/dev/model_datacom_dmswitch.go)
- [Fortigate FortiOS](https://github.com/udhos/jazigo/blob/master/dev/model_fortios.go)
- [Huawei VRP](https://github.com/udhos/jazigo/blob/master/dev/model_huawei_vrp.go)
- [HTTP](https://github.com/udhos/jazigo/blob/master/dev/model_http.go) (collect output of http GET method)
- [Huawei VRP](https://github.com/udhos/jazigo/blob/master/dev/model_huawei_vrp.go)
- [Juniper JunOS](https://github.com/udhos/jazigo/blob/master/dev/model_junos.go)
- [Linux](https://github.com/udhos/jazigo/blob/master/dev/model_lin.go) (collect output of SSH commands)
- [Mikrotik](https://github.com/udhos/jazigo/blob/master/dev/model_mikrotik.go)
Expand Down
9 changes: 5 additions & 4 deletions dev/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,17 +73,18 @@ func (d *Device) Holdtime(now time.Time, holdtime time.Duration) time.Duration {

// RegisterModels adds known device models.
func RegisterModels(logger hasPrintf, t *DeviceTable) {
registerModelFortiOS(logger, t)
registerModelCiscoNGA(logger, t)
registerModelCiscoAPIC(logger, t)
registerModelCiscoIOS(logger, t)
registerModelCiscoIOSXR(logger, t)
registerModelDatacomDmswitch(logger, t)
registerModelFortiOS(logger, t)
registerModelHTTP(logger, t)
registerModelHuaweiVRP(logger, t)
registerModelLinux(logger, t)
registerModelJunOS(logger, t)
registerModelHTTP(logger, t)
registerModelRun(logger, t)
registerModelLinux(logger, t)
registerModelMikrotik(logger, t)
registerModelRun(logger, t)
}

// CreateDevice creates a new device in the device table.
Expand Down
37 changes: 37 additions & 0 deletions dev/model_datacom_dmswitch.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package dev

import (
"time"

"github.com/udhos/jazigo/conf"
)

func registerModelDatacomDmswitch(logger hasPrintf, t *DeviceTable) {
a := conf.NewDevAttr()

a.CommandList = []string{
"no terminal paging", // disable paging
"show system",
"show firmware",
"show running-config",
"terminal paging", // enable paging
}

a.DisabledPromptPattern = `[^#\s]+#$`

a.NeedLoginChat = true
a.UsernamePromptPattern = `login:\s*$`
a.PasswordPromptPattern = `Password:\s*$`
a.ReadTimeout = 10 * time.Second
a.MatchTimeout = 20 * time.Second
a.SendTimeout = 5 * time.Second
a.CommandReadTimeout = 15 * time.Second // larger timeout for slow 'sh run'
a.CommandMatchTimeout = 25 * time.Second // larger timeout for slow 'sh run'
a.QuoteSentCommandsFormat = `!![%s]`

m := &Model{name: "dmswitch"}
m.defaultAttr = a
if err := t.SetModel(m, logger); err != nil {
logger.Printf("registerModelDatacomDmswitch: %v", err)
}
}
8 changes: 8 additions & 0 deletions samples/datacom_dmswitch.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Escape character is '^]'.



dmswitch-lab login: lab
Password:
dmswitch-lab#
dmswitch-lab#exit

0 comments on commit 2bdccff

Please sign in to comment.