示例#1
0
文件: bgp_test.go 项目: udhos/nexthop
func Example_diff2() {

	app, c := setup_diff()

	f := func(s string) {
		if err := command.Dispatch(app, s, c, command.CONF, false); err != nil {
			log.Printf("dispatch: [%s]: %v", s, err)
		}
	}

	f("hostname bgp1")
	f("hostname bgp2")
	f("router bgp 1 neighbor 1.1.1.1 remote-as 1")
	f("router bgp 1 neighbor 2.2.2.2 remote-as 1")
	f("router bgp 1 neighbor 3.3.3.3 remote-as 2")
	f("router bgp 2 neighbor 3.3.3.3 remote-as 2")
	f("router bgp 2 neighbor 4.4.4.4 remote-as 2")
	f("router bgp 2 neighbor 4.4.4.4 remote-as 3")

	if err := command.Dispatch(app, "commit", c, command.CONF, false); err != nil {
		log.Printf("dispatch: [commit]: %v", err)
	}

	nonet := "no router bgp 1"
	if err := command.CmdNo(app, nil, nonet, c); err != nil {
		log.Printf("cmd failed: [%s] error=[%v]", nonet, err)
		return
	}

	command.WriteConfig(app.confRootCandidate, &outputWriter{})
	// Output:
	// hostname bgp2
	// router bgp 2 neighbor 3.3.3.3 remote-as 2
	// router bgp 2 neighbor 4.4.4.4 remote-as 3
}
示例#2
0
文件: bgp_test.go 项目: udhos/nexthop
func Example_diff1() {

	app, c := setup_diff()

	f := func(s string) {
		if err := command.Dispatch(app, s, c, command.CONF, false); err != nil {
			log.Printf("dispatch: [%s]: %v", s, err)
		}
	}

	f("hostname bgp1")
	f("hostname bgp2")
	f("router bgp 1 neighbor 1.1.1.1 description  A  BB   C")
	f("router bgp 1 neighbor 1.1.1.1 description  AA  BB   C")
	f("router bgp 1 neighbor 1.1.1.1 remote-as 1")
	f("router bgp 1 neighbor 2.2.2.2 remote-as 1")
	f("router bgp 1 neighbor 3.3.3.3 remote-as 2")
	f("router bgp 2 neighbor 3.3.3.3 remote-as 2")
	f("router bgp 2 neighbor 4.4.4.4 remote-as 2")
	f("router bgp 2 neighbor 4.4.4.4 remote-as 3")

	command.WriteConfig(app.confRootCandidate, &outputWriter{})
	// Output:
	// hostname bgp2
	// router bgp 1 neighbor 1.1.1.1 description  AA  BB   C
	// router bgp 1 neighbor 1.1.1.1 remote-as 1
	// router bgp 1 neighbor 2.2.2.2 remote-as 1
	// router bgp 1 neighbor 3.3.3.3 remote-as 2
	// router bgp 2 neighbor 3.3.3.3 remote-as 2
	// router bgp 2 neighbor 4.4.4.4 remote-as 3
}
示例#3
0
文件: rip_test.go 项目: udhos/nexthop
func Example_diff2() {

	app, c := setup_diff()

	f := func(s string) {
		if err := command.Dispatch(app, s, c, command.CONF, false); err != nil {
			log.Printf("dispatch: [%s]: %v", s, err)
		}
	}

	f("hostname rip1")
	f("hostname rip2")
	f("router rip network 1.1.1.0/24")
	f("router rip network 1.1.2.0/24")
	f("router rip network 1.1.3.0/24 cost 2")
	f("router rip network 1.1.4.0/24 cost 15")
	f("router rip vrf X network 1.1.1.0/24")
	f("router rip vrf X network 1.1.2.0/24")
	f("router rip vrf X network 1.1.3.0/24 cost 3")
	f("router rip vrf X network 1.1.3.0/24 cost 4")
	f("router rip vrf x network 1.1.1.1/32")
	f("username guest1 password secret1")
	f("username guest1 password secret2")
	f("username guest2 password secret3")

	if err := command.Dispatch(app, "commit", c, command.CONF, false); err != nil {
		log.Printf("dispatch: [commit]: %v", err)
	}

	/*
		noCmd, err := command.CmdFind(app.cmdRoot, "no X", command.CONF, true)
		if err != nil {
			log.Printf("could not find 'no' command: %v", err)
			return
		}
	*/

	nonet := "no router rip network"
	if err := command.CmdNo(app, nil, nonet, c); err != nil {
		log.Printf("cmd failed: [%s] error=[%v]", nonet, err)
		return
	}

	command.WriteConfig(app.confRootCandidate, &outputWriter{})
	// Output:
	// hostname rip2
	// router rip vrf X network 1.1.1.0/24
	// router rip vrf X network 1.1.2.0/24
	// router rip vrf X network 1.1.3.0/24 cost 4
	// router rip vrf x network 1.1.1.1/32
	// username guest1 password secret2
	// username guest2 password secret3
}
示例#4
0
文件: rip_test.go 项目: udhos/nexthop
func Example_diff1() {

	app, c := setup_diff()

	f := func(s string) {
		if err := command.Dispatch(app, s, c, command.CONF, false); err != nil {
			log.Printf("dispatch: [%s]: %v", s, err)
		}
	}

	f("hostname rip1")
	f("hostname rip2")
	f("router rip network 1.1.1.0/24")
	f("router rip network 1.1.2.0/24")
	f("router rip network 1.1.3.0/24 cost 2")
	f("router rip network 1.1.4.0/24 cost 15")
	f("router rip vrf X network 1.1.1.0/24")
	f("router rip vrf X network 1.1.2.0/24")
	f("router rip vrf X network 1.1.3.0/24 cost 3")
	f("router rip vrf X network 1.1.3.0/24 cost 4")
	f("router rip vrf x network 1.1.1.1/32")
	f("username guest1 password secret1")
	f("username guest1 password secret2")
	f("username guest2 password secret3")

	command.WriteConfig(app.confRootCandidate, &outputWriter{})
	// Output:
	// hostname rip2
	// router rip network 1.1.1.0/24
	// router rip network 1.1.2.0/24
	// router rip network 1.1.3.0/24 cost 2
	// router rip network 1.1.4.0/24 cost 15
	// router rip vrf X network 1.1.1.0/24
	// router rip vrf X network 1.1.2.0/24
	// router rip vrf X network 1.1.3.0/24 cost 4
	// router rip vrf x network 1.1.1.1/32
	// username guest1 password secret2
	// username guest2 password secret3
}
示例#5
0
文件: rip_test.go 项目: udhos/nexthop
func dumpConf(root *command.ConfNode, label string) {
	fmt.Println(label)
	command.WriteConfig(root, &outputWriter{})
}