lenovo-rbapi 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.md +25 -0
- data/README.md +76 -0
- data/lib/cnos-rbapi.rb +16 -0
- data/lib/cnos-rbapi/arp.rb +115 -0
- data/lib/cnos-rbapi/connect.rb +146 -0
- data/lib/cnos-rbapi/igmp.rb +117 -0
- data/lib/cnos-rbapi/ip_intf.rb +93 -0
- data/lib/cnos-rbapi/lacp.rb +64 -0
- data/lib/cnos-rbapi/lag.rb +207 -0
- data/lib/cnos-rbapi/lldp.rb +173 -0
- data/lib/cnos-rbapi/mstp.rb +214 -0
- data/lib/cnos-rbapi/rest_utils.rb +111 -0
- data/lib/cnos-rbapi/stp.rb +93 -0
- data/lib/cnos-rbapi/system.rb +523 -0
- data/lib/cnos-rbapi/telemetry.rb +285 -0
- data/lib/cnos-rbapi/valn_intf.rb +0 -0
- data/lib/cnos-rbapi/vlag.rb +275 -0
- data/lib/cnos-rbapi/vlan.rb +124 -0
- data/lib/cnos-rbapi/vlan_intf.rb +89 -0
- data/lib/cnos-rbapi/vrrp.rb +198 -0
- data/test/rbapi_test.rb +1046 -0
- metadata +69 -0
@@ -0,0 +1,124 @@
|
|
1
|
+
##
|
2
|
+
## Copyright (c) 2017, Lenovo. All rights reserved.
|
3
|
+
##
|
4
|
+
## This program and the accompanying materials are licensed and made available
|
5
|
+
## under the terms and conditions of the 3-clause BSD License that accompanies
|
6
|
+
## this distribution.
|
7
|
+
##
|
8
|
+
## The full text of the license may be found at
|
9
|
+
##
|
10
|
+
## https://opensource.org/licenses/BSD-3-Clause
|
11
|
+
##
|
12
|
+
## THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
13
|
+
## WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
14
|
+
##
|
15
|
+
require 'rest-client'
|
16
|
+
require 'json'
|
17
|
+
require_relative 'connect'
|
18
|
+
require_relative 'rest_utils'
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
##
|
23
|
+
## The Vlan class provides a class implementation and methods for managing the VLANs
|
24
|
+
## on the node. This class presents an abstraction
|
25
|
+
##
|
26
|
+
#
|
27
|
+
|
28
|
+
class Vlan
|
29
|
+
@cfg = '/nos/api/cfg/vlan'
|
30
|
+
|
31
|
+
# This API gets properties of all VLANS.
|
32
|
+
#
|
33
|
+
#
|
34
|
+
# parameters:
|
35
|
+
# conn - connection object to the node
|
36
|
+
#
|
37
|
+
# return: JSON response
|
38
|
+
def self.get_all_vlan(conn)
|
39
|
+
url = form_url(conn, @cfg)
|
40
|
+
hdr = form_hdr(conn)
|
41
|
+
Rest.get(conn, url, hdr)
|
42
|
+
end
|
43
|
+
|
44
|
+
# This API creates a Vlan.
|
45
|
+
#
|
46
|
+
#
|
47
|
+
# parameters:
|
48
|
+
# conn - connection object to the node
|
49
|
+
# params - dictionary that requires the following format of key-value pairs
|
50
|
+
# {
|
51
|
+
# "vlan_name": "<vlan_name>",
|
52
|
+
# "vlan_id": "<vlan_id>",
|
53
|
+
# "admin_state": "<admin_state>",
|
54
|
+
# }
|
55
|
+
# description -
|
56
|
+
# vlan_name :VLAN name; a string up to 32 characters long. To create a VLAN
|
57
|
+
# with the default name, the vlan_name field must be null.
|
58
|
+
# vlan_id :VLAN number.; an integer from 2‐3999.
|
59
|
+
# admin_state :The admin status; one of up, down
|
60
|
+
#
|
61
|
+
# return: JSON response
|
62
|
+
def self.create_vlan(conn, params)
|
63
|
+
url = form_url(conn, @cfg)
|
64
|
+
hdr = form_hdr(conn)
|
65
|
+
params = params.to_json
|
66
|
+
Rest.post(conn, url, hdr, params)
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
# This API gets properties of a vlan.
|
71
|
+
#
|
72
|
+
#
|
73
|
+
# parameters:
|
74
|
+
# conn - connection object to the node
|
75
|
+
# vlan_id - VLAN number
|
76
|
+
#
|
77
|
+
# return: JSON response
|
78
|
+
def self.get_vlan_prop(conn, vlan_id)
|
79
|
+
url = form_url(conn, @cfg + '/' + vlan_id.to_s)
|
80
|
+
hdr = form_hdr(conn)
|
81
|
+
Rest.get(conn, url, hdr)
|
82
|
+
end
|
83
|
+
|
84
|
+
# This API updates properties of a VLAN.
|
85
|
+
#
|
86
|
+
#
|
87
|
+
# parameters:
|
88
|
+
# conn - connection object to the node
|
89
|
+
# vlan_id - VLAN number
|
90
|
+
# params - dictionary that requires the following format of key-value pairs
|
91
|
+
# {
|
92
|
+
# "vlan_name": "<vlan_name>",
|
93
|
+
# "admin_state": "<admin_state>"
|
94
|
+
# }
|
95
|
+
# description -
|
96
|
+
# vlan_name :VLAN name; a string up to 32 characters long. To change a VLAN
|
97
|
+
# name with default name, the vlan_name field must be null.
|
98
|
+
# admin_state :The admin status; one of up, down
|
99
|
+
#
|
100
|
+
# return: JSON response
|
101
|
+
def self.update_vlan(conn, vlan_id, params)
|
102
|
+
url = form_url(conn, @cfg + '/' + vlan_id.to_s)
|
103
|
+
hdr = form_hdr(conn)
|
104
|
+
params = params.to_json
|
105
|
+
Rest.put(conn, url, hdr, params)
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
# This API deletes a vlan.
|
110
|
+
#
|
111
|
+
#
|
112
|
+
# parameters:
|
113
|
+
# conn - connection object to the node
|
114
|
+
# vlan_id - VLAN number
|
115
|
+
# Note: If the specified vlan_id is all, all user‐created VLANs will be deleted.
|
116
|
+
#
|
117
|
+
# return:
|
118
|
+
def self.delete_vlan(conn, vlan_id)
|
119
|
+
url = form_url(conn, @cfg + '/' + vlan_id.to_s)
|
120
|
+
hdr = form_hdr(conn)
|
121
|
+
Rest.delete(conn, url, hdr)
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
##
|
2
|
+
## Copyright (c) 2017, Lenovo. All rights reserved.
|
3
|
+
##
|
4
|
+
## This program and the accompanying materials are licensed and made available
|
5
|
+
## under the terms and conditions of the 3-clause BSD License that accompanies
|
6
|
+
## this distribution.
|
7
|
+
##
|
8
|
+
## The full text of the license may be found at
|
9
|
+
##
|
10
|
+
## https://opensource.org/licenses/BSD-3-Clause
|
11
|
+
##
|
12
|
+
## THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
13
|
+
## WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
14
|
+
##
|
15
|
+
require 'rest-client'
|
16
|
+
require 'json'
|
17
|
+
require_relative 'connect'
|
18
|
+
require_relative 'rest_utils'
|
19
|
+
|
20
|
+
##
|
21
|
+
## The VlanIntf class provides a class implementation and methods for managing the Vlan Interfaces
|
22
|
+
## on the node. This class presents an abstraction
|
23
|
+
##
|
24
|
+
|
25
|
+
|
26
|
+
class VlanIntf
|
27
|
+
@cfg = '/nos/api/cfg/vlan_interface'
|
28
|
+
# This API gets VLAN properties of all Ethernet interfaces.
|
29
|
+
#
|
30
|
+
#
|
31
|
+
# parameters:
|
32
|
+
# conn - connection object to the node
|
33
|
+
#
|
34
|
+
# return: JSON response
|
35
|
+
def self.get_all_vlan_intf(conn)
|
36
|
+
url = form_url(conn, @cfg)
|
37
|
+
hdr = form_hdr(conn)
|
38
|
+
Rest.get(conn, url, hdr)
|
39
|
+
end
|
40
|
+
|
41
|
+
# This API gets VLAN properties of an Ethernet Interface.
|
42
|
+
#
|
43
|
+
#
|
44
|
+
# parameters:
|
45
|
+
# conn - connection object to the node
|
46
|
+
# vlan_intf - Interface
|
47
|
+
#
|
48
|
+
# return: JSON response
|
49
|
+
def self.get_vlan_prop_intf(conn, vlan_intf)
|
50
|
+
temp = vlan_intf.dup
|
51
|
+
temp.sub! '/', '%2F'
|
52
|
+
url = form_url(conn, @cfg + '/' + temp)
|
53
|
+
hdr = form_hdr(conn)
|
54
|
+
Rest.get(conn, url, hdr)
|
55
|
+
end
|
56
|
+
|
57
|
+
# This API updates properties of a Lag.
|
58
|
+
#
|
59
|
+
#
|
60
|
+
# parameters:
|
61
|
+
# conn - connection object to the node
|
62
|
+
# params - dictionary that requires the following format of key-value pairs
|
63
|
+
# {
|
64
|
+
#
|
65
|
+
# "if_name": "<if_name>",
|
66
|
+
# “bridgeport_mode”: “<bridgeport_mode>”
|
67
|
+
# “pvid”: "<pvid>",
|
68
|
+
# “vlans”: ["<vlan_id>"]
|
69
|
+
# }
|
70
|
+
# description -
|
71
|
+
# if_name :Ethernet interface name (String).Note: The Ethernet interface must exist.
|
72
|
+
# bridgeport_ mode :Bridge port mode; one of access, trunk
|
73
|
+
# pvid :Native VLAN for a port (the access VLAN for access ports or the
|
74
|
+
# native VLAN for trunk ports); an integer from 1‐3999. Default
|
75
|
+
# value: 1.
|
76
|
+
# vlans :(Optional) VLAN memberships; all, none, or an integer from
|
77
|
+
# 1‐3999.
|
78
|
+
#
|
79
|
+
# return: JSON response
|
80
|
+
def self.update_vlan_intf(conn, vlan_intf, params)
|
81
|
+
temp = vlan_intf.dup
|
82
|
+
temp.sub! '/', '%2F'
|
83
|
+
url = form_url(conn, @cfg + '/' + temp)
|
84
|
+
hdr = form_hdr(conn)
|
85
|
+
params = params.to_json
|
86
|
+
Rest.put(conn, url, hdr, params)
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
@@ -0,0 +1,198 @@
|
|
1
|
+
##
|
2
|
+
## Copyright (c) 2017, Lenovo. All rights reserved.
|
3
|
+
##
|
4
|
+
## This program and the accompanying materials are licensed and made available
|
5
|
+
## under the terms and conditions of the 3-clause BSD License that accompanies
|
6
|
+
## this distribution.
|
7
|
+
##
|
8
|
+
## The full text of the license may be found at
|
9
|
+
##
|
10
|
+
## https://opensource.org/licenses/BSD-3-Clause
|
11
|
+
##
|
12
|
+
## THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
13
|
+
## WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
14
|
+
##
|
15
|
+
require 'rest-client'
|
16
|
+
require 'json'
|
17
|
+
require_relative 'connect'
|
18
|
+
require_relative 'rest_utils'
|
19
|
+
|
20
|
+
|
21
|
+
##
|
22
|
+
## The Vrrp class provides a class implementation and methods for managing Vrrp
|
23
|
+
## on the node. This class presents an abstraction
|
24
|
+
##
|
25
|
+
|
26
|
+
class Vrrp
|
27
|
+
@cfg = '/nos/api/cfg/vrrp'
|
28
|
+
# This API gets properties of all VRRP VRs of all interfaces.
|
29
|
+
#
|
30
|
+
#
|
31
|
+
# parameters:
|
32
|
+
# conn - connection object to the node
|
33
|
+
#
|
34
|
+
# return: JSON response
|
35
|
+
def self.get_vrrp_prop_all(conn)
|
36
|
+
url = form_url(conn, @cfg)
|
37
|
+
hdr = form_hdr(conn)
|
38
|
+
Rest.get(conn, url, hdr)
|
39
|
+
end
|
40
|
+
|
41
|
+
# This API gets properties of all VRRP VRs under one specified interface.
|
42
|
+
#
|
43
|
+
#
|
44
|
+
# parameters:
|
45
|
+
# conn - connection object to the node
|
46
|
+
# intf - Interface on switch
|
47
|
+
#
|
48
|
+
# return: JSON response
|
49
|
+
def self.get_vrrp_intf(conn, intf)
|
50
|
+
temp = intf.dup
|
51
|
+
temp.sub! '/', '%2F'
|
52
|
+
url = form_url(conn, @cfg + '/' + temp)
|
53
|
+
hdr = form_hdr(conn)
|
54
|
+
Rest.get(conn, url, hdr)
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
# This API create a VRRP VR.
|
59
|
+
#
|
60
|
+
#
|
61
|
+
# parameters:
|
62
|
+
# conn - connection object to the node
|
63
|
+
# intf - Interface on switch
|
64
|
+
# params - dictionary that requires the following format of key-value pairs
|
65
|
+
# {
|
66
|
+
# "if_name": "<if_name>",
|
67
|
+
# "vr_id": "<vr_id>",
|
68
|
+
# "ip_addr": "<ip_addr>",
|
69
|
+
# "ad_intvl": "<ad_intvl>",
|
70
|
+
# "preempt": "<preempt>",
|
71
|
+
# "prio": "<prio>",
|
72
|
+
# "admin_state": "<admin_state>",
|
73
|
+
# "track_if": "<track_if>",
|
74
|
+
# "accept_mode": "<accept_mode>",
|
75
|
+
# "switch_back_delay": "<switch_back_delay>",
|
76
|
+
# "v2_compt": "<v2_compt>"
|
77
|
+
# }
|
78
|
+
# description -
|
79
|
+
# if_name :Interface name.Note: The interface must exist.
|
80
|
+
# vr_id :Virtual Router (VR) identifier; an integer from 1‐255.
|
81
|
+
# ip_addr :The IP address of the VR; a valid IPv4 address.
|
82
|
+
# ad_intvl :Advertisement interval (The number of centi‐seconds between
|
83
|
+
# advertisements for VRRPv3); a multiple of 5 from 5‐4095. Default
|
84
|
+
# value: 100 centi‐seconds.
|
85
|
+
# preempt :Enable the preemption of a lower priority master; one of yes
|
86
|
+
# (default) , no.
|
87
|
+
# prio :The priority of the VR on the switch; an integer from 1‐254.
|
88
|
+
# Default value: 100.
|
89
|
+
# admin_state :Enable the VR one of up (default), down.
|
90
|
+
# oper_state :The operation state of the VR; one of master, backup, init.
|
91
|
+
# track_if :The interface to track by this VR. Default value: noneNote: If an interface is specified, it must exist.
|
92
|
+
# accept_mode Enables or disables the accept mode for this session; one of yes
|
93
|
+
# (default), no.
|
94
|
+
# switch_back_delay :The switch back delay interval; an integer from 1‐500000, or 0 to
|
95
|
+
# disable (default).
|
96
|
+
# v2_compt :Enables backward compatibility for VRRPv2 for the VR; one of
|
97
|
+
# yes, no (default).
|
98
|
+
#
|
99
|
+
# return: JSON response
|
100
|
+
def self.create_vrrp_intf(conn, intf, params)
|
101
|
+
temp = intf.dup
|
102
|
+
temp.sub! '/', '%2F'
|
103
|
+
url = form_url(conn, @cfg + '/' + temp)
|
104
|
+
hdr = form_hdr(conn)
|
105
|
+
params = params.to_json
|
106
|
+
Rest.post(conn, url, hdr, params)
|
107
|
+
end
|
108
|
+
|
109
|
+
# This API gets properties of a VRRP VR.
|
110
|
+
#
|
111
|
+
#
|
112
|
+
# parameters:
|
113
|
+
# conn - connection object to the node
|
114
|
+
# intf - Interface on switch
|
115
|
+
# vrid - Virtual Router Identifier 1-255
|
116
|
+
#
|
117
|
+
# return: JSON response
|
118
|
+
def self.get_vrrp_intf_vrid(conn, intf, vrid)
|
119
|
+
temp = intf.dup
|
120
|
+
temp.sub! '/', '%2F'
|
121
|
+
url = form_url(conn, @cfg + '/' + temp + '/' + vrid.to_s)
|
122
|
+
hdr = form_hdr(conn)
|
123
|
+
Rest.get(conn, url, hdr)
|
124
|
+
end
|
125
|
+
|
126
|
+
|
127
|
+
# This API updates the properties of a VRRP VR.
|
128
|
+
#
|
129
|
+
#
|
130
|
+
# parameters:
|
131
|
+
# conn - connection object to the node
|
132
|
+
# intf - Interface on switch
|
133
|
+
# vrid - Virtual Router Identifier 1-255
|
134
|
+
#
|
135
|
+
# params - dictionary that requires the following format of key-value pairs
|
136
|
+
# {
|
137
|
+
# "if_name": "<if_name>",
|
138
|
+
# "vr_id": "<vr_id>",
|
139
|
+
# "ip_addr": "<ip_addr>",
|
140
|
+
# "ad_intvl": "<ad_intvl>",
|
141
|
+
# "preempt": "<preempt>",
|
142
|
+
# "prio": "<prio>",
|
143
|
+
# "admin_state": "<admin_state>",
|
144
|
+
# "track_if": "<track_if>",
|
145
|
+
# "accept_mode": "<accept_mode>",
|
146
|
+
# "switch_back_delay": "<switch_back_delay>",
|
147
|
+
# "v2_compt": "<v2_compt>"
|
148
|
+
# }
|
149
|
+
#
|
150
|
+
# description -
|
151
|
+
# if_name :Interface name.Note: The interface must exist.
|
152
|
+
# vr_id :Virtual Router (VR) identifier; an integer from 1‐255.
|
153
|
+
# ip_addr :The IP address of the VR; a valid IPv4 address.
|
154
|
+
# ad_intvl :Advertisement interval (The number of centi‐seconds between
|
155
|
+
# advertisements for VRRPv3); a multiple of 5 from 5‐4095. Default
|
156
|
+
# value: 100 centi‐seconds.
|
157
|
+
# preempt :Enable the preemption of a lower priority master; one of yes
|
158
|
+
# (default) , no.
|
159
|
+
# prio :The priority of the VR on the switch; an integer from 1‐254.
|
160
|
+
# Default value: 100.
|
161
|
+
# admin_state :Enable the VR one of up (default), down.
|
162
|
+
# oper_state :The operation state of the VR; one of master, backup, init.
|
163
|
+
# track_if :The interface to track by this VR. Default value: noneNote: If an interface is specified, it must exist.
|
164
|
+
# accept_mode Enables or disables the accept mode for this session; one of yes
|
165
|
+
# (default), no.
|
166
|
+
# switch_back_delay :The switch back delay interval; an integer from 1‐500000, or 0 to
|
167
|
+
# disable (default).
|
168
|
+
# v2_compt :Enables backward compatibility for VRRPv2 for the VR; one of
|
169
|
+
# yes, no (default).
|
170
|
+
#
|
171
|
+
# return: JSON response
|
172
|
+
def self.update_vrrp_intf_vrid(conn, intf, vrid, params)
|
173
|
+
temp = intf.dup
|
174
|
+
temp.sub! '/', '%2F'
|
175
|
+
url = form_url(conn, @cfg + '/' + temp + '/' + vrid.to_s)
|
176
|
+
hdr = form_hdr(conn)
|
177
|
+
params = params.to_json
|
178
|
+
Rest.put(conn, url, hdr, params)
|
179
|
+
end
|
180
|
+
|
181
|
+
# This API Delete a VRRP VR.
|
182
|
+
#
|
183
|
+
#
|
184
|
+
# parameters:
|
185
|
+
# conn - connection object to the node
|
186
|
+
# intf - Interface on switch
|
187
|
+
# vrid - Virtual Router Identifier 1-255
|
188
|
+
#
|
189
|
+
# return:
|
190
|
+
def self.del_vrrp_intf_vrid(conn, intf, vrid)
|
191
|
+
temp = intf.dup
|
192
|
+
temp.sub! '/', '%2F'
|
193
|
+
url = form_url(conn, @cfg + '/' + temp + '/' + vrid.to_s)
|
194
|
+
hdr = form_hdr(conn)
|
195
|
+
Rest.delete(conn, url, hdr)
|
196
|
+
end
|
197
|
+
|
198
|
+
end
|
data/test/rbapi_test.rb
ADDED
@@ -0,0 +1,1046 @@
|
|
1
|
+
|
2
|
+
require 'cnos-rbapi'
|
3
|
+
require 'cnos-rbapi/vlan'
|
4
|
+
require 'cnos-rbapi/vlan_intf'
|
5
|
+
require 'cnos-rbapi/lag'
|
6
|
+
require 'cnos-rbapi/arp'
|
7
|
+
require 'cnos-rbapi/lldp'
|
8
|
+
require 'cnos-rbapi/lacp'
|
9
|
+
require 'cnos-rbapi/vlag'
|
10
|
+
require 'cnos-rbapi/telemetry'
|
11
|
+
require 'cnos-rbapi/vrrp'
|
12
|
+
require 'cnos-rbapi/mstp'
|
13
|
+
require 'cnos-rbapi/ip_intf'
|
14
|
+
require 'cnos-rbapi/system'
|
15
|
+
require 'cnos-rbapi/igmp'
|
16
|
+
require 'cnos-rbapi/stp'
|
17
|
+
require 'yaml'
|
18
|
+
require 'json'
|
19
|
+
|
20
|
+
config = ["mars.yml", "jupiter.yml", "neptune.yml", "voyager.yml"]
|
21
|
+
file = File.open("/tmp/test_log.txt", "w")
|
22
|
+
|
23
|
+
config.each do |line|
|
24
|
+
file.puts("\n\n " + line + "\n\n")
|
25
|
+
params = YAML.load_file(line)
|
26
|
+
conn = Connect.new(params)
|
27
|
+
resp = Vlan.get_all_vlan(conn)
|
28
|
+
if resp == nil
|
29
|
+
file.puts( "CH_LEN_088 - get_all_vlan -------->FAILED\n")
|
30
|
+
else
|
31
|
+
file.puts( "CH_LEN_088 - get_all_vlan -------->PASSED\n")
|
32
|
+
end
|
33
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
34
|
+
params = {"vlan_name" => "test", "vlan_id" => 10, "admin_state" => "up"}
|
35
|
+
resp = Vlan.create_vlan(conn, params)
|
36
|
+
if resp == nil
|
37
|
+
file.puts( "CH_LEN_089 - create_vlan -------->FAILED\n")
|
38
|
+
else
|
39
|
+
file.puts( "CH_LEN_089 - create_vlan -------->PASSED\n")
|
40
|
+
end
|
41
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
42
|
+
resp = Vlan.get_vlan_prop(conn, 10)
|
43
|
+
if resp == nil
|
44
|
+
file.puts( "CH_LEN_090 get_vlan_prop -------->FAILED\n")
|
45
|
+
else
|
46
|
+
file.puts( "CH_LEN_090 get_vlan_prop -------->PASSED\n")
|
47
|
+
end
|
48
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
49
|
+
params = {"vlan_name" => "testagain", "admin_state" => "up"}
|
50
|
+
resp = Vlan.update_vlan(conn, 10, params)
|
51
|
+
if resp == nil
|
52
|
+
file.puts( "CH_LEN_092 - update_vlan -------->FAILED\n")
|
53
|
+
else
|
54
|
+
if resp['vlan_name'] == "testagain"
|
55
|
+
file.puts( "CH_LEN_092 - update_vlan -------->PASSED\n")
|
56
|
+
else
|
57
|
+
file.puts( "CH_LEN_092 - update_vlan -------->FAILED\n")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
61
|
+
resp = Vlan.delete_vlan(conn, 10)
|
62
|
+
resp = Vlan.get_vlan_prop(conn, 10)
|
63
|
+
if resp == nil
|
64
|
+
file.puts( "CH_LEN_091 - delete_vlan -------->PASSED\n")
|
65
|
+
else
|
66
|
+
file.puts( "CH_LEN_091 - delete_vlan -------->FAILED \n")
|
67
|
+
end
|
68
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
69
|
+
|
70
|
+
|
71
|
+
###########################################################################
|
72
|
+
|
73
|
+
file.puts( "\n testing vlan_intf.rb \n\n")
|
74
|
+
resp = VlanIntf.get_all_vlan_intf(conn)
|
75
|
+
if resp == nil
|
76
|
+
file.puts( "CH_LEN_093 get_all_vlan_intf -------->FAILED\n")
|
77
|
+
else
|
78
|
+
file.puts( "CH_LEN_093 get_all_vlan_intf -------->PASSED\n")
|
79
|
+
end
|
80
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
81
|
+
resp = VlanIntf.get_vlan_prop_intf(conn, 'Ethernet1/2')
|
82
|
+
if resp == nil
|
83
|
+
file.puts( "CH_LEN_094 get_vlan_prop_intf -------->FAILED\n")
|
84
|
+
else
|
85
|
+
file.puts( "CH_LEN_094 get_vlan_prop_intf -------->PASSED\n")
|
86
|
+
end
|
87
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
88
|
+
params = {"pvid"=>1, "vlans"=>[1], "bridgeport_mode"=>"access", "if_name"=>"Ethernet1/92"}
|
89
|
+
VlanIntf.update_vlan_intf(conn, 'Ethernet1/2', params)
|
90
|
+
if resp == nil
|
91
|
+
file.puts( "CH_LEN_095 update_vlan_intf -------->FAILED\n")
|
92
|
+
else
|
93
|
+
if resp['bridgeport_mode'] == "access"
|
94
|
+
file.puts( "CH_LEN_095 update_vlan_intf -------->PASSED\n")
|
95
|
+
else
|
96
|
+
file.puts( "CH_LEN_095 update_vlan_intf -------->FAILED\n")
|
97
|
+
end
|
98
|
+
end
|
99
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
100
|
+
|
101
|
+
##########################################################################
|
102
|
+
|
103
|
+
file.puts( "\n testing lag.rb \n\n")
|
104
|
+
resp = Lag.get_all_lag(conn)
|
105
|
+
if resp == nil
|
106
|
+
file.puts( "CH_LEN_007 get_all_lag -------->FAILED\n")
|
107
|
+
else
|
108
|
+
file.puts( "CH_LEN_007 get_all_lag -------->PASSED\n")
|
109
|
+
end
|
110
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
111
|
+
resp = Lag.create_lag(conn, 25)
|
112
|
+
if resp == nil
|
113
|
+
file.puts( "CH_LEN_001 create_lag -------->FAILED\n")
|
114
|
+
else
|
115
|
+
file.puts( "CH_LEN_001 create_lag -------->PASSED\n")
|
116
|
+
end
|
117
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
118
|
+
resp = Lag.get_lag_prop(conn, 25)
|
119
|
+
if resp == nil
|
120
|
+
file.puts( "CH_LEN_006 get_lag_prop -------->FAILED\n")
|
121
|
+
else
|
122
|
+
file.puts( "CH_LEN_006 get_lag_prop -------->PASSED\n")
|
123
|
+
end
|
124
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
125
|
+
resp = Lag.get_load_balance(conn)
|
126
|
+
if resp == nil
|
127
|
+
file.puts( "CH_LEN_004 get_load_balance -------->FAILED\n")
|
128
|
+
else
|
129
|
+
file.puts( "CH_LEN_004 get_load_balance -------->PASSED\n")
|
130
|
+
end
|
131
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
132
|
+
params = {"interfaces"=> [], "lag_id"=> 25, "min_links"=> 2}
|
133
|
+
resp = Lag.update_lag(conn, 25, params)
|
134
|
+
if resp == nil
|
135
|
+
file.puts( "CH_LEN_003 update_lag-------->FAILED\n")
|
136
|
+
else
|
137
|
+
if resp['min_links'] == 2
|
138
|
+
file.puts( "CH_LEN_003 update_lag-------->PASSED\n")
|
139
|
+
else
|
140
|
+
file.puts( "CH_LEN_003 update_lag-------->FAILED\n")
|
141
|
+
end
|
142
|
+
end
|
143
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
144
|
+
params = { "destination-port" => "no"}
|
145
|
+
resp = Lag.update_lag_load_balance(conn, params)
|
146
|
+
if resp == nil
|
147
|
+
file.puts( "CH_LEN_005 update_lag_load_balance -------->FAILED\n")
|
148
|
+
else
|
149
|
+
if resp['destination-port'] == "no"
|
150
|
+
file.puts( "CH_LEN_005 update_lag_load_balance -------->PASSED\n")
|
151
|
+
else
|
152
|
+
file.puts( "CH_LEN_005 update_lag_load_balance -------->FAILED\n")
|
153
|
+
end
|
154
|
+
end
|
155
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
156
|
+
Lag.delete_lag(conn, 25)
|
157
|
+
resp = Lag.get_lag_prop(conn, 25)
|
158
|
+
if resp == nil
|
159
|
+
file.puts( "CH_LEN_002 delete_lag -------->PASSED\n")
|
160
|
+
else
|
161
|
+
file.puts( "CH_LEN_002 delete_lag -------->FAILED\n")
|
162
|
+
end
|
163
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
164
|
+
|
165
|
+
#########################################################################
|
166
|
+
|
167
|
+
file.puts( "\n testing arp.rb \n\n")
|
168
|
+
resp = Arp.get_arp_sys_prop(conn)
|
169
|
+
if resp == nil
|
170
|
+
file.puts( "CH_LEN_061 get_arp_sys_prop -------->FAILED\n")
|
171
|
+
else
|
172
|
+
file.puts( "CH_LEN_061 get_arp_sys_prop -------->PASSED\n")
|
173
|
+
end
|
174
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
175
|
+
resp = Arp.get_arp_prop_all(conn)
|
176
|
+
if resp == nil
|
177
|
+
file.puts( "CH_LEN_115 get_arp_prop_all -------->FAILED\n")
|
178
|
+
else
|
179
|
+
file.puts( "CH_LEN_115 get_arp_prop_all -------->PASSED\n")
|
180
|
+
end
|
181
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
182
|
+
params = {"ageout_time"=>100}
|
183
|
+
resp = Arp.set_arp_sys_prop(conn, params)
|
184
|
+
if resp == nil
|
185
|
+
file.puts( "CH_LEN_062 set_arp_sys_prop -------->FAILED\n")
|
186
|
+
else
|
187
|
+
file.puts( "CH_LEN_062 set_arp_sys_prop -------->PASSED\n")
|
188
|
+
end
|
189
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
190
|
+
resp = Arp.get_arp_intf_prop(conn, 'Ethernet1/1')
|
191
|
+
if resp == nil
|
192
|
+
file.puts( "CH_LEN_063 get_arp_intf_prop -------->FAILED\n")
|
193
|
+
else
|
194
|
+
file.puts( "CH_LEN_063 get_arp_intf_prop -------->PASSED\n")
|
195
|
+
end
|
196
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
197
|
+
params = {"ageout_time"=> 70, "if_name"=>"Ethernet1/1"}
|
198
|
+
resp = Arp.set_arp_intf_prop(conn, 'Ethernet1/1', params)
|
199
|
+
if resp == nil
|
200
|
+
file.puts( "CH_LEN_064 set_arp_intf_prop -------->FAILED\n")
|
201
|
+
else
|
202
|
+
if resp['ageout_time'] == 70
|
203
|
+
file.puts( "CH_LEN_064 set_arp_intf_prop -------->PASSED\n")
|
204
|
+
else
|
205
|
+
file.puts( "CH_LEN_064 set_arp_intf_prop -------->FAILED\n")
|
206
|
+
end
|
207
|
+
end
|
208
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
209
|
+
|
210
|
+
|
211
|
+
####################################################################
|
212
|
+
|
213
|
+
file.puts( "\n testing lldp.rb \n\n")
|
214
|
+
resp = Lldp.get_lldp_prop(conn)
|
215
|
+
if resp == nil
|
216
|
+
file.puts( "CH_LEN_069 get_lldp_prop -------->FAILED\n")
|
217
|
+
else
|
218
|
+
file.puts( "CH_LEN_069 get_lldp_prop -------->PASSED\n")
|
219
|
+
end
|
220
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
221
|
+
resp = Lldp.get_lldp_all_intf(conn)
|
222
|
+
if resp == nil
|
223
|
+
file.puts( "CH_LEN_071 get_lldp_all_intf -------->FAILED\n")
|
224
|
+
else
|
225
|
+
file.puts( "CH_LEN_071 get_lldp_all_intf -------->PASSED\n")
|
226
|
+
end
|
227
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
228
|
+
resp = Lldp.get_lldp_intf(conn, 'Ethernet1/1')
|
229
|
+
if resp == nil
|
230
|
+
file.puts( "CH_LEN_072 get_lldp_intf -------->FAILED\n")
|
231
|
+
else
|
232
|
+
file.puts( "CH_LEN_072 get_lldp_intf -------->PASSED\n")
|
233
|
+
end
|
234
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
235
|
+
resp = Lldp.get_lldp_intf_stats(conn, 'Ethernet1/1')
|
236
|
+
if resp == nil
|
237
|
+
file.puts( "CH_LEN_116 get_lldp_intf_stats -------->FAILED\n")
|
238
|
+
else
|
239
|
+
file.puts( "CH_LEN_116 get_lldp_intf_stats -------->PASSED\n")
|
240
|
+
end
|
241
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
242
|
+
resp = Lldp.get_lldp_intf_neighbor(conn, 'Ethernet1/3')
|
243
|
+
if resp == nil
|
244
|
+
file.puts( "CH_LEN_117 get_lldp_intf_neighbour -------->FAILED\n")
|
245
|
+
else
|
246
|
+
file.puts( "CH_LEN_117 get_lldp_intf_neighbour -------->PASSED\n")
|
247
|
+
end
|
248
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
249
|
+
resp = Lldp.get_lldp_intf_neighbor_all(conn)
|
250
|
+
if resp == nil
|
251
|
+
file.puts( "CH_LEN_118 get_lldp_intf_neighbour_all -------->FAILED\n")
|
252
|
+
else
|
253
|
+
file.puts( "CH_LEN_118 get_lldp_intf_neighbour_all -------->PASSED\n")
|
254
|
+
end
|
255
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
256
|
+
params = {"transmit interval": 35, "transmit delay": 2, "reinit delay": 3}
|
257
|
+
resp = Lldp.update_lldp_prop(conn, params)
|
258
|
+
if resp == nil
|
259
|
+
file.puts( "CH_LEN_070 update_lldp_prop -------->FAILED\n")
|
260
|
+
else
|
261
|
+
if resp['reinit delay'] == 3
|
262
|
+
file.puts( "CH_LEN_070 update_lldp_prop -------->PASSED\n")
|
263
|
+
else
|
264
|
+
file.puts( "CH_LEN_070 update_lldp_prop -------->FAILED\n")
|
265
|
+
end
|
266
|
+
end
|
267
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
268
|
+
params = {"ena_lldp_rx": "yes", "if_name": "Ethernet1/3", "ena_lldp_tx": "yes"}
|
269
|
+
resp = Lldp.update_lldp_intf(conn, 'Ethernet1/3', params)
|
270
|
+
if resp == nil
|
271
|
+
file.puts( "CH_LEN_073 update_lldp_intf -------->FAILED\n")
|
272
|
+
else
|
273
|
+
if resp['ena_lldp_tx'] == 'yes'
|
274
|
+
file.puts( "CH_LEN_073 update_lldp_intf -------->PASSED\n")
|
275
|
+
else
|
276
|
+
file.puts( "CH_LEN_073 update_lldp_intf -------->FAILED\n")
|
277
|
+
end
|
278
|
+
end
|
279
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
280
|
+
|
281
|
+
file.puts( "\n testing lacp.rb \n\n")
|
282
|
+
resp = Lacp.get_lacp(conn)
|
283
|
+
if resp == nil
|
284
|
+
file.puts( "CH_LEN_074 get_lacp -------->FAILED\n")
|
285
|
+
else
|
286
|
+
file.puts( "CH_LEN_074 get_lacp -------->PASSED\n")
|
287
|
+
end
|
288
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
289
|
+
params = {"sys_prio" => 32767}
|
290
|
+
resp = Lacp.update_lacp(conn, params)
|
291
|
+
if resp == nil
|
292
|
+
file.puts( "CH_LEN_075 update_lacp -------->FAILED\n")
|
293
|
+
else
|
294
|
+
if resp['sys_prio'] == 32767
|
295
|
+
file.puts( "CH_LEN_075 update_lacp -------->PASSED\n")
|
296
|
+
else
|
297
|
+
file.puts( "CH_LEN_075 update_lacp -------->FAILED\n")
|
298
|
+
end
|
299
|
+
end
|
300
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
301
|
+
|
302
|
+
##################################################################
|
303
|
+
|
304
|
+
file.puts( "\n testing ip_intf.rb \n\n")
|
305
|
+
resp = Ipintf.get_ip_prop_all(conn)
|
306
|
+
if resp == nil
|
307
|
+
file.puts("CH_LEN_076 get_ip_prop_all -------->FAILED\n")
|
308
|
+
else
|
309
|
+
file.puts("CH_LEN_076 get_ip_prop_all -------->PASSED\n")
|
310
|
+
end
|
311
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
312
|
+
resp = Ipintf.get_ip_prop_intf(conn,'Ethernet1/1')
|
313
|
+
if resp == nil
|
314
|
+
file.puts("CH_LEN_077 get_ip_prop_intf -------->FAILED\n")
|
315
|
+
else
|
316
|
+
file.puts("CH_LEN_077 get_ip_prop_intf -------->PASSED\n")
|
317
|
+
end
|
318
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
319
|
+
params = { "ip_addr": "1.1.1.1", "bridge_port": "no", "if_name": "Ethernet1/1", "mtu": 1500, "vrf_name": "default", "admin_state": "up", "ip_prefix_len": 24}
|
320
|
+
resp = Ipintf.update_ip_prop_intf(conn, 'Ethernet1/1', params)
|
321
|
+
if resp == nil
|
322
|
+
file.puts("CH_LEN_078 update_ip_prop_intf -------->FAILED\n")
|
323
|
+
else
|
324
|
+
if resp['bridge_port'] == "no"
|
325
|
+
file.puts( "CH_LEN_078 - update_ip_prop_intf -------->PASSED\n")
|
326
|
+
else
|
327
|
+
file.puts( "CH_LEN_078 - update_ip_prop_intf -------->FAILED\n")
|
328
|
+
end
|
329
|
+
end
|
330
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
331
|
+
|
332
|
+
########################################################################
|
333
|
+
|
334
|
+
file.puts( "\n testing vrrp.rb \n\n")
|
335
|
+
resp = Vrrp.get_vrrp_prop_all(conn)
|
336
|
+
if resp == nil
|
337
|
+
file.puts( "CH_LEN_032 get_vrrp_prop_all -------->FAILED\n")
|
338
|
+
else
|
339
|
+
file.puts( "CH_LEN_032 get_vrrp_prop_all -------->PASSED\n")
|
340
|
+
end
|
341
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
342
|
+
resp = Vrrp.get_vrrp_intf(conn, 'Ethernet1/1')
|
343
|
+
if resp == nil
|
344
|
+
file.puts( "CH_LEN_033 get_vrrp_intf -------->FAILED\n")
|
345
|
+
else
|
346
|
+
file.puts( "CH_LEN_033 get_vrrp_intf_stats -------->PASSED\n")
|
347
|
+
end
|
348
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
349
|
+
params = {
|
350
|
+
"if_name":"Ethernet1/1",
|
351
|
+
"vr_id":1,
|
352
|
+
"ip_addr":"1.1.1.254",
|
353
|
+
"ad_intvl":100,
|
354
|
+
"preempt":"no",
|
355
|
+
"prio":100,
|
356
|
+
"admin_state":"down",
|
357
|
+
"accept_mode":"no",
|
358
|
+
"switch_back_delay":1,
|
359
|
+
"v2_compt":"no"
|
360
|
+
}
|
361
|
+
resp = Vrrp.create_vrrp_intf(conn, 'Ethernet1/1', params)
|
362
|
+
if resp == nil
|
363
|
+
file.puts( "CH_LEN_035 create_vrrp_intf_vrid -------->FAILED\n")
|
364
|
+
else
|
365
|
+
file.puts( "CH_LEN_035 create_vrrp_intf_vrid -------->PASSED\n")
|
366
|
+
end
|
367
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
368
|
+
params = {
|
369
|
+
"if_name":"Ethernet1/1",
|
370
|
+
"vr_id":1,
|
371
|
+
"ip_addr":"1.1.1.254",
|
372
|
+
"ad_intvl":100,
|
373
|
+
"preempt":"no",
|
374
|
+
"prio":100,
|
375
|
+
"admin_state":"up",
|
376
|
+
"accept_mode":"no",
|
377
|
+
"switch_back_delay":1,
|
378
|
+
"v2_compt":"no"
|
379
|
+
}
|
380
|
+
resp = Vrrp.update_vrrp_intf_vrid(conn, 'Ethernet1/1', 1, params)
|
381
|
+
if resp == nil
|
382
|
+
file.puts( "CH_LEN_036 update_vrrp_intf_vrid -------->FAILED\n")
|
383
|
+
else
|
384
|
+
if resp['admin_state'] == "up"
|
385
|
+
file.puts( "CH_LEN_036 update_vrrp_intf_vrid -------->PASSED\n")
|
386
|
+
else
|
387
|
+
file.puts( "CH_LEN_036 update_vrrp_intf_vrid -------->FAILED\n")
|
388
|
+
end
|
389
|
+
end
|
390
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
391
|
+
resp = Vrrp.del_vrrp_intf_vrid(conn, 'Ethernet1/1', 1)
|
392
|
+
resp = Vrrp.get_vrrp_intf_vrid(conn, 'Ethernet1/1' , 1)
|
393
|
+
if resp == []
|
394
|
+
file.puts( "delete_vrrp_intf_vrid -------->PASSED\n")
|
395
|
+
else
|
396
|
+
file.puts( "delete_vrrp_intf_vrid -------->FAILED\n")
|
397
|
+
end
|
398
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
399
|
+
|
400
|
+
##################################################################
|
401
|
+
|
402
|
+
file.puts( "\n testing vlag.rb \n\n")
|
403
|
+
resp = Vlag.get_vlag_conf(conn)
|
404
|
+
if resp == nil
|
405
|
+
file.puts( "CH_LEN_020 get_vlag_conf -------->FAILED\n")
|
406
|
+
else
|
407
|
+
file.puts( "CH_LEN_020 get_vlag_conf -------->PASSED\n")
|
408
|
+
end
|
409
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
410
|
+
resp = Vlag.get_global_vlag(conn)
|
411
|
+
if resp == nil
|
412
|
+
file.puts( "CH_LEN_022 get_global_vlag -------->FAILED\n")
|
413
|
+
else
|
414
|
+
file.puts( "CH_LEN_022 get_global_vlag -------->PASSED\n")
|
415
|
+
end
|
416
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
417
|
+
resp = Vlag.get_vlag_isl(conn)
|
418
|
+
if resp == nil
|
419
|
+
file.puts( "CH_LEN_023 get_vlag_isl -------->FAILED\n")
|
420
|
+
else
|
421
|
+
file.puts( "CH_LEN_023 get_vlag_isl -------->PASSED\n")
|
422
|
+
end
|
423
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
424
|
+
resp = Vlag.get_vlag_health(conn)
|
425
|
+
if resp == nil
|
426
|
+
file.puts( "CH_LEN_025 get_vlag_health -------->FAILED\n")
|
427
|
+
else
|
428
|
+
file.puts( "CH_LEN_025 get_vlag_health -------->PASSED\n")
|
429
|
+
end
|
430
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
431
|
+
resp = Vlag.get_vlag_inst_info(conn, 2)
|
432
|
+
if resp == nil
|
433
|
+
file.puts( "CH_LEN_031 get_vlag_inst_info -------->FAILED\n")
|
434
|
+
else
|
435
|
+
file.puts( "CH_LEN_031 get_vlag_inst_info -------->PASSED\n")
|
436
|
+
end
|
437
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
438
|
+
resp = Vlag.get_vlag_inst_confg(conn, 2)
|
439
|
+
if resp == nil
|
440
|
+
file.puts( "CH_LEN_030 get_vlag_inst_confg -------->FAILED\n")
|
441
|
+
else
|
442
|
+
file.puts( "CH_LEN_030 get_vlag_inst_confg -------->PASSED\n")
|
443
|
+
end
|
444
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
445
|
+
params = {"priority": 0, "auto_recovery": 300, "startup_delay": 120, "tier_id": 11, "status": "disable"}
|
446
|
+
resp = Vlag.update_vlag_conf(conn, params)
|
447
|
+
if resp == nil
|
448
|
+
file.puts( "CH_LEN_021 update_vlag_conf -------->FAILED\n")
|
449
|
+
else
|
450
|
+
if resp['auto_recovery'] == 300
|
451
|
+
file.puts( "CH_LEN_021 update_vlag_conf -------->PASSED\n")
|
452
|
+
else
|
453
|
+
file.puts( "CH_LEN_021 update_vlag_conf -------->FAILED\n")
|
454
|
+
end
|
455
|
+
end
|
456
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
457
|
+
params = {"port_aggregator": 200}
|
458
|
+
resp = Vlag.update_vlag_isl(conn, params)
|
459
|
+
resp = Vlag.get_vlag_isl(conn)
|
460
|
+
if resp == nil
|
461
|
+
file.puts( "CH_LEN_024 update_vlag_isl -------->FAILED\n")
|
462
|
+
else
|
463
|
+
if resp['port_aggregator'] == 200
|
464
|
+
file.puts( "CH_LEN_024 update_vlag_isl -------->PASSED\n")
|
465
|
+
else
|
466
|
+
file.puts( "CH_LEN_024 update_vlag_isl -------->FAILED\n")
|
467
|
+
end
|
468
|
+
end
|
469
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
470
|
+
params = { "keepalive_interval": 5, "retry_interval": 30, "peer_ip": "10.240.177.120", "vrf": "default", "keepalive_attempts": 3}
|
471
|
+
resp = Vlag.update_vlag_health(conn, params)
|
472
|
+
if resp == nil
|
473
|
+
file.puts( "CH_LEN_026 update_vlag_health -------->FAILED\n")
|
474
|
+
else
|
475
|
+
if resp['keepalive_interval'] == 5
|
476
|
+
file.puts( "CH_LEN_026 update_vlag_health -------->PASSED\n")
|
477
|
+
else
|
478
|
+
file.puts( "CH_LEN_026 update_vlag_health -------->FAILED\n")
|
479
|
+
end
|
480
|
+
end
|
481
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
482
|
+
params = {"port_aggregator": 2, "status": "disable", "inst_id": 1}
|
483
|
+
resp = Vlag.create_vlag_inst(conn, params)
|
484
|
+
resp = Vlag.get_vlag_inst_confg(conn, 1)
|
485
|
+
if resp == nil
|
486
|
+
file.puts( "CH_LEN_027 create_vlag_inst -------->FAILED\n")
|
487
|
+
else
|
488
|
+
if resp['status'] == 'disable'
|
489
|
+
file.puts( "CH_LEN_027 create_vlag_inst -------->PASSED\n")
|
490
|
+
else
|
491
|
+
file.puts( "CH_LEN_027 create_vlag_inst -------->FAILED\n")
|
492
|
+
end
|
493
|
+
|
494
|
+
end
|
495
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
496
|
+
params = {"status": "enable"}
|
497
|
+
resp = Vlag.update_vlag_inst(conn, 1, params)
|
498
|
+
resp = Vlag.get_vlag_inst_confg(conn, 1)
|
499
|
+
if resp == nil
|
500
|
+
file.puts( "CH_LEN_028 update_vlag_inst -------->FAILED\n")
|
501
|
+
else
|
502
|
+
if resp['status'] == 'enable'
|
503
|
+
file.puts( "CH_LEN_028 update_vlag_inst -------->PASSED\n")
|
504
|
+
else
|
505
|
+
file.puts( "CH_LEN_028 update_vlag_inst -------->FAILED\n")
|
506
|
+
end
|
507
|
+
end
|
508
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
509
|
+
Vlag.delete_vlag_inst(conn, 1)
|
510
|
+
resp = Vlag.get_vlag_inst_confg(conn, 1)
|
511
|
+
if resp == nil
|
512
|
+
file.puts( "CH_LEN_029 delete_vlag_inst -------->PASSED\n")
|
513
|
+
else
|
514
|
+
if resp['port_aggregator'] == 0
|
515
|
+
file.puts( "CH_LEN_029 delete_vlag_inst -------->PASSED\n")
|
516
|
+
else
|
517
|
+
file.puts( "CH_LEN_029 delete_vlag_inst -------->FAILED\n")
|
518
|
+
end
|
519
|
+
end
|
520
|
+
|
521
|
+
###################################################################
|
522
|
+
|
523
|
+
params = {"vlan_name" => "test", "vlan_id" => 10, "admin_state" => "up"}
|
524
|
+
resp = Vlan.create_vlan(conn, params)
|
525
|
+
file.puts( "\n testing mstp.rb \n\n")
|
526
|
+
resp = Mstp.get_mstp_sys_prop(conn)
|
527
|
+
if resp == nil
|
528
|
+
file.puts("CH_LEN_011 get_mstp_sys_prop -------->FAILED\n")
|
529
|
+
else
|
530
|
+
file.puts("CH_LEN_011 get_mstp_sys_prop -------->PASSED\n")
|
531
|
+
end
|
532
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
533
|
+
params = {'region_name' => 'test', 'revision' => 1}
|
534
|
+
resp = Mstp.update_mstp_sys_prop(conn, params)
|
535
|
+
if resp == nil
|
536
|
+
file.puts("CH_LEN_012 update_mstp_sys_prop -------->FAILED\n")
|
537
|
+
else
|
538
|
+
if resp['region_name'] == 'test'
|
539
|
+
file.puts("CH_LEN_012 update_mstp_sys_prop -------->PASSED\n")
|
540
|
+
else
|
541
|
+
file.puts("CH_LEN_012 update_mstp_sys_prop -------->FAILED\n")
|
542
|
+
end
|
543
|
+
end
|
544
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
545
|
+
resp = Mstp.get_mstp_inst_all(conn)
|
546
|
+
if resp == nil
|
547
|
+
file.puts( "CH_LEN_013 get_mstp_all -------->FAILED\n")
|
548
|
+
else
|
549
|
+
file.puts( "CH_LEN_013 get_mst_all -------->PASSED\n")
|
550
|
+
end
|
551
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
552
|
+
params = {"instance_id": 1, "vlans": [{"vlan_id": 10}], "instance_prio": 32768}
|
553
|
+
Mstp.create_mstp_inst(conn,params)
|
554
|
+
resp = Mstp.get_mstp_inst(conn, 1)
|
555
|
+
if resp == nil
|
556
|
+
file.puts( "CH_LEN_014 create_mstp_inst -------->FAILED\n")
|
557
|
+
else
|
558
|
+
file.puts( "CH_LEN_014 create_mstp_inst -------->PASSED\n")
|
559
|
+
end
|
560
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
561
|
+
resp = Mstp.get_mstp_inst(conn, 0)
|
562
|
+
if resp == nil
|
563
|
+
file.puts( "CH_LEN_015 get_mstp_inst -------->FAILED\n")
|
564
|
+
else
|
565
|
+
file.puts( "CH_LEN_015 get_mstp_inst -------->PASSED\n")
|
566
|
+
end
|
567
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
568
|
+
params = [{"instance_id": 0, "vlans": [{"vlan_id": 1}], "instance_prio": 3276}]
|
569
|
+
resp = Mstp.update_mstp_inst(conn, 0, params)
|
570
|
+
resp = Mstp.get_mstp_inst(conn, 0)
|
571
|
+
if resp == nil
|
572
|
+
file.puts( "CH_LEN_016 update_mstp_inst -------->FAILED\n")
|
573
|
+
else
|
574
|
+
if resp[0]['instance_prio'] == 3276
|
575
|
+
file.puts("CH_LEN_016 update_mstp_inst -------->PASSED\n")
|
576
|
+
else
|
577
|
+
file.puts("CH_LEN_016 update_mstp_inst -------->FAILED\n")
|
578
|
+
end
|
579
|
+
end
|
580
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
581
|
+
resp = Mstp.del_mstp_inst(conn, 1)
|
582
|
+
resp = Mstp.get_mstp_inst(conn, 1)
|
583
|
+
if resp == nil
|
584
|
+
file.puts( "CH_LEN_017 del_mstp_inst -------->PASSED\n")
|
585
|
+
else
|
586
|
+
file.puts( "CH_LEN_017 del_mstp_inst -------->FAILED\n")
|
587
|
+
end
|
588
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
589
|
+
resp = Mstp.get_mstp_inst_intf(conn, 0, "Ethernet1/1")
|
590
|
+
if resp == nil
|
591
|
+
file.puts( "CH_LEN_018 get_mstp_inst_intf -------->FAILED\n")
|
592
|
+
else
|
593
|
+
file.puts( "CH_LEN_018 get_mstp_inst_intf-------->PASSED\n")
|
594
|
+
end
|
595
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
596
|
+
params = {"if_name": 'Ethernet1/1', "path_cost": 1, "port_prio": 128}
|
597
|
+
resp = Mstp.update_mstp_inst_intf(conn, 1, 'Ethernet1/1', params)
|
598
|
+
resp = Mstp.get_mstp_inst_intf(conn, 1,'Ethernet1/1')
|
599
|
+
if resp == nil
|
600
|
+
file.puts( "CH_LEN_019 update_mstp_inst_intf -------->FAILED\n")
|
601
|
+
else
|
602
|
+
if resp['instance_prio'] == 3276
|
603
|
+
file.puts("CH_LEN_019 update_mstp_inst_intf -------->PASSED\n")
|
604
|
+
else
|
605
|
+
file.puts("CH_LEN_019 update_mstp_inst_intf -------->FAILED\n")
|
606
|
+
end
|
607
|
+
end
|
608
|
+
|
609
|
+
#######################################################################3
|
610
|
+
|
611
|
+
file.puts( "\n testing stp.rb \n\n")
|
612
|
+
resp = Stp.get_all_stp(conn)
|
613
|
+
if resp == nil
|
614
|
+
file.puts("CH_LEN_008 get_all_stp -------->FAILED\n")
|
615
|
+
else
|
616
|
+
file.puts("CH_LEN_008 get_all_stp -------->PASSED\n")
|
617
|
+
end
|
618
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
619
|
+
resp = Stp.get_stp_intf(conn, 'Ethernet1/2')
|
620
|
+
if resp == nil
|
621
|
+
file.puts("CH_LEN_009 get_stp_intf -------->FAILED\n")
|
622
|
+
else
|
623
|
+
file.puts("CH_LEN_009 get_stp_intf -------->PASSED\n")
|
624
|
+
end
|
625
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
626
|
+
params = {"root_guard": "disable", "edge_port": "yes", "loop_guard": "disable", "if_name": "Ethernet1/2", "bpdu_guard": "disable"}
|
627
|
+
resp = Stp.update_stp(conn, 'Ethernet1/2', params)
|
628
|
+
if resp == nil
|
629
|
+
file.puts("CH_LEN_010 update_stp -------->FAILED\n")
|
630
|
+
else
|
631
|
+
if resp['edge_port'] == "yes"
|
632
|
+
file.puts( "CH_LEN_010 - update_stp -------->PASSED\n")
|
633
|
+
else
|
634
|
+
file.puts( "CH_LEN_010 - update_stp -------->FAILED\n")
|
635
|
+
end
|
636
|
+
end
|
637
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
638
|
+
#########################################################################
|
639
|
+
|
640
|
+
file.puts( "\n testing system.rb \n\n")
|
641
|
+
resp = System.get_hostname(conn)
|
642
|
+
if resp == nil
|
643
|
+
file.puts("CH_LEN_038 get_hostname -------->FAILED\n")
|
644
|
+
else
|
645
|
+
file.puts("CH_LEN_038 get_hostname -------->PASSED\n")
|
646
|
+
end
|
647
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
648
|
+
params = {"hostname": "G8296"}
|
649
|
+
resp = System.set_hostname(conn, params)
|
650
|
+
if resp == nil
|
651
|
+
file.puts("CH_LEN_039 set_hostname -------->FAILED\n")
|
652
|
+
else
|
653
|
+
if resp['hostname'] == "G8296"
|
654
|
+
file.puts( "CH_LEN_039 - set_hostname -------->PASSED\n")
|
655
|
+
else
|
656
|
+
file.puts( "CH_LEN_039 - set_hostname -------->FAILED\n")
|
657
|
+
end
|
658
|
+
end
|
659
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
660
|
+
resp = System.get_clock(conn)
|
661
|
+
if resp == nil
|
662
|
+
file.puts("CH_LEN_040 get_clock -------->FAILED\n")
|
663
|
+
else
|
664
|
+
file.puts("CH_LEN_040 get_clock -------->PASSED\n")
|
665
|
+
end
|
666
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
667
|
+
params = {"time" => "12:23:23", "day"=> 3, "month" => "November", "year" => 2017}
|
668
|
+
resp = System.set_clock(conn, params)
|
669
|
+
if resp == nil
|
670
|
+
file.puts("CH_LEN_041 set_clock -------->FAILED\n")
|
671
|
+
else
|
672
|
+
file.puts( "CH_LEN_041 - set_clock -------->PASSED\n")
|
673
|
+
end
|
674
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
675
|
+
params = {"format": 12}
|
676
|
+
resp = System.set_clock_format(conn, params)
|
677
|
+
if resp == nil
|
678
|
+
file.puts("CH_LEN_042 set_clock_format -------->FAILED\n")
|
679
|
+
else
|
680
|
+
if resp['format'] == 12
|
681
|
+
file.puts( "CH_LEN_042 - set_clock_format -------->PASSED\n")
|
682
|
+
else
|
683
|
+
file.puts( "CH_LEN_042 - set_clock_format -------->FAILED\n")
|
684
|
+
end
|
685
|
+
end
|
686
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
687
|
+
params = {"protocol": "ntp"}
|
688
|
+
resp = System.set_clock_protocol(conn, params)
|
689
|
+
if resp == nil
|
690
|
+
file.puts("CH_LEN_043 set_clock_protocol -------->FAILED\n")
|
691
|
+
else
|
692
|
+
if resp['protocol'] == "ntp"
|
693
|
+
file.puts( "CH_LEN_043 - set_clock_protocol -------->PASSED\n")
|
694
|
+
else
|
695
|
+
file.puts( "CH_LEN_043 - set_clock_protocol -------->FAILED\n")
|
696
|
+
end
|
697
|
+
end
|
698
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
699
|
+
params = {"timezone" => "PST", "offsethour" => 10, "offsetmin" => 10}
|
700
|
+
resp = System.set_clock_timezone(conn, params)
|
701
|
+
if resp == nil
|
702
|
+
file.puts("CH_LEN_044 set_clock_timezone -------->FAILED\n")
|
703
|
+
else
|
704
|
+
file.puts( "CH_LEN_044 - set_clock_timezone -------->PASSED\n")
|
705
|
+
end
|
706
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
707
|
+
resp = System.get_device_contact(conn)
|
708
|
+
if resp == nil
|
709
|
+
file.puts("CH_LEN_045 get_device_contact -------->FAILED\n")
|
710
|
+
else
|
711
|
+
file.puts("CH_LEN_045 get_device_contact -------->PASSED\n")
|
712
|
+
end
|
713
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
714
|
+
params = {"contact": "test"}
|
715
|
+
resp = System.set_device_contact(conn, params)
|
716
|
+
if resp == nil
|
717
|
+
file.puts("CH_LEN_046 set_device_contact -------->FAILED\n")
|
718
|
+
else
|
719
|
+
if resp['contact'] == "test"
|
720
|
+
file.puts( "CH_LEN_046 - set_device_contact -------->PASSED\n")
|
721
|
+
else
|
722
|
+
file.puts( "CH_LEN_046 - set_device_contact -------->FAILED\n")
|
723
|
+
end
|
724
|
+
end
|
725
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
726
|
+
params = {"descr": "test"}
|
727
|
+
resp = System.set_device_descr(conn, params)
|
728
|
+
if resp == nil
|
729
|
+
file.puts("CH_LEN_047 set_device_descr -------->FAILED\n")
|
730
|
+
else
|
731
|
+
if resp['descr'] == "test"
|
732
|
+
file.puts( "CH_LEN_047 - set_device_descr -------->PASSED\n")
|
733
|
+
else
|
734
|
+
file.puts( "CH_LEN_047 - set_device_descr -------->FAILED\n")
|
735
|
+
end
|
736
|
+
end
|
737
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
738
|
+
resp = System.get_device_descr(conn)
|
739
|
+
if resp == nil
|
740
|
+
file.puts("CH_LEN_120 get_device_descr -------->FAILED\n")
|
741
|
+
else
|
742
|
+
file.puts("CH_LEN_120 get_device_descr -------->PASSED\n")
|
743
|
+
end
|
744
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
745
|
+
|
746
|
+
file.puts( "\n testing igmp.rb \n\n")
|
747
|
+
resp = Igmp.get_igmp_snoop_prop(conn)
|
748
|
+
if resp == nil
|
749
|
+
file.puts("CH_LEN_065 get_igmp_snoop_prop -------->FAILED\n")
|
750
|
+
else
|
751
|
+
file.puts("CH_LEN_065 get_igmp_snoop_prop -------->PASSED\n")
|
752
|
+
end
|
753
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
754
|
+
params = {"ena_igmp_snoop": "yes"}
|
755
|
+
resp = Igmp.set_igmp_snoop_prop(conn, params)
|
756
|
+
if resp == nil
|
757
|
+
file.puts("CH_LEN_066 set_igmp_snoop_prop -------->FAILED\n")
|
758
|
+
else
|
759
|
+
if resp['ena_igmp_snoop'] == "yes"
|
760
|
+
file.puts( "CH_LEN_066 - set_igmp_snoop_prop -------->PASSED\n")
|
761
|
+
else
|
762
|
+
file.puts( "CH_LEN_066 - set_igmp_snoop_prop -------->FAILED\n")
|
763
|
+
end
|
764
|
+
end
|
765
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
766
|
+
resp = Igmp.get_igmp_vlan_prop(conn, 1)
|
767
|
+
if resp == nil
|
768
|
+
file.puts("CH_LEN_067 get_igmp_vlan_prop -------->FAILED\n")
|
769
|
+
else
|
770
|
+
file.puts("CH_LEN_067 get_igmp_vlan_prop -------->PASSED\n")
|
771
|
+
end
|
772
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
773
|
+
params = {"fast_leave": "no", "query_interval": 120, "version": 3, "ena_igmp_snoop": "yes", "vlan_id": 1}
|
774
|
+
resp = Igmp.set_igmp_vlan_prop(conn, 1 , params)
|
775
|
+
if resp == nil
|
776
|
+
file.puts("CH_LEN_068 set_igmp_snoop_prop -------->FAILED\n")
|
777
|
+
else
|
778
|
+
if resp['query_interval'] == 120
|
779
|
+
file.puts( "CH_LEN_068 - set_igmp_vlan_prop -------->PASSED\n")
|
780
|
+
else
|
781
|
+
file.puts( "CH_LEN_068 - set_igmp_vlan_prop -------->FAILED\n")
|
782
|
+
end
|
783
|
+
end
|
784
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
785
|
+
|
786
|
+
###########################################################################
|
787
|
+
|
788
|
+
file.puts( "\n testing telemetry.rb \n\n")
|
789
|
+
resp = Telemetry.get_sys_feature(conn)
|
790
|
+
if resp == nil
|
791
|
+
file.puts("CH_LEN_049 get_sys_feature -------->FAILED\n")
|
792
|
+
else
|
793
|
+
file.puts("CH_LEN_049 get_sys_feature -------->PASSED\n")
|
794
|
+
end
|
795
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
796
|
+
params = {"heartbeat-enable"=> 1, "msg-interval"=> 10}
|
797
|
+
resp = Telemetry.set_sys_feature(conn, params)
|
798
|
+
resp = Telemetry.get_sys_feature(conn)
|
799
|
+
if resp == nil
|
800
|
+
file.puts("CH_LEN_050 set_sys_feature -------->FAILED\n")
|
801
|
+
else
|
802
|
+
if resp['msg-interval'] == 10
|
803
|
+
file.puts( "CH_LEN_050 - set_sys_feature -------->PASSED\n")
|
804
|
+
else
|
805
|
+
file.puts( "CH_LEN_050 - set_sys_feature -------->FAILED\n")
|
806
|
+
end
|
807
|
+
end
|
808
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
809
|
+
resp = Telemetry.get_bst_tracking(conn)
|
810
|
+
if resp == nil
|
811
|
+
file.puts("CH_LEN_051 get_bst_tracking -------->FAILED\n")
|
812
|
+
else
|
813
|
+
file.puts("CH_LEN_051 get_bst_tracking -------->PASSED\n")
|
814
|
+
end
|
815
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
816
|
+
params = {"track-egress-port-service-pool"=> 1,
|
817
|
+
"track-egress-uc-queue"=> 1,
|
818
|
+
"track-egress-rqe-queue"=> 1,
|
819
|
+
"track-egress-cpu-queue"=> 1,
|
820
|
+
"track-ingress-port-service-pool"=> 1,
|
821
|
+
"track-ingress-service-pool"=> 1,
|
822
|
+
"track-egress-mc-queue"=> 1,
|
823
|
+
"track-peak-stats"=> 0,
|
824
|
+
"track-ingress-port-priority-group"=> 1,
|
825
|
+
"track-egress-service-pool"=> 1,
|
826
|
+
"track-device"=> 1}
|
827
|
+
resp = Telemetry.set_bst_tracking(conn, params)
|
828
|
+
resp = Telemetry.get_bst_tracking(conn)
|
829
|
+
if resp == nil
|
830
|
+
file.puts("CH_LEN_052 set_bst_tracking -------->FAILED\n")
|
831
|
+
else
|
832
|
+
if resp['track-peak-stats'] == 0
|
833
|
+
file.puts( "CH_LEN_052 - set_bst_tracking -------->PASSED\n")
|
834
|
+
else
|
835
|
+
file.puts( "CH_LEN_052 - set_bst_tracking -------->FAILED\n")
|
836
|
+
end
|
837
|
+
end
|
838
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
839
|
+
resp = Telemetry.get_bst_feature(conn)
|
840
|
+
if resp == nil
|
841
|
+
file.puts("CH_LEN_053 get_bst_feature -------->FAILED\n")
|
842
|
+
else
|
843
|
+
file.puts("CH_LEN_053 get_bst_feature -------->PASSED\n")
|
844
|
+
end
|
845
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
846
|
+
params = {
|
847
|
+
"collection-interval" => 60,
|
848
|
+
"send-async-reports"=> 0,
|
849
|
+
"send-snapshot-on-trigger"=> 1,
|
850
|
+
"trigger-rate-limit"=> 1,
|
851
|
+
"async-full-report"=> 0,
|
852
|
+
"trigger-rate-limit-interval"=> 10,
|
853
|
+
"bst-enable"=> 1}
|
854
|
+
|
855
|
+
resp = Telemetry.set_bst_feature(conn, params)
|
856
|
+
resp = Telemetry.get_bst_feature(conn)
|
857
|
+
if resp == nil
|
858
|
+
file.puts("CH_LEN_054 set_bst_feature -------->FAILED\n")
|
859
|
+
else
|
860
|
+
if resp['bst-enable'] == 1
|
861
|
+
file.puts( "CH_LEN_054 - set_bst_feature -------->PASSED\n")
|
862
|
+
else
|
863
|
+
file.puts( "CH_LEN_054 - set_bst_feature -------->FAILED\n")
|
864
|
+
end
|
865
|
+
end
|
866
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
867
|
+
params = {
|
868
|
+
"include-ingress-port-priority-group" => 1,
|
869
|
+
"include-ingress-port-service-pool" => 1,
|
870
|
+
"include-ingress-service-pool" => 1,
|
871
|
+
"include-egress-port-service-pool" => 1,
|
872
|
+
"include-egress-service-pool" => 1,
|
873
|
+
"include-egress-rqe-queue" => 1,
|
874
|
+
"include-device" => 1
|
875
|
+
}
|
876
|
+
resp = Telemetry.get_bst_report(conn, params)
|
877
|
+
if resp == nil
|
878
|
+
file.puts("CH_LEN_055 get_bst_report -------->FAILED\n")
|
879
|
+
else
|
880
|
+
file.puts("CH_LEN_055 get_bst_report -------->PASSED\n")
|
881
|
+
end
|
882
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
883
|
+
params = {
|
884
|
+
"include-ingress-port-priority-group" => 1,
|
885
|
+
"include-ingress-port-service-pool" => 1,
|
886
|
+
"include-ingress-service-pool" => 1,
|
887
|
+
"include-egress-port-service-pool" => 1,
|
888
|
+
"include-egress-service-pool" => 1,
|
889
|
+
"include-egress-rqe-queue" => 1,
|
890
|
+
"include-device" => 1
|
891
|
+
}
|
892
|
+
resp = Telemetry.get_bst_threshold(conn, params)
|
893
|
+
if resp == nil
|
894
|
+
file.puts("CH_LEN_056 get_bst_threshold -------->FAILED\n")
|
895
|
+
else
|
896
|
+
file.puts("CH_LEN_056 get_bst_threshold -------->PASSED\n")
|
897
|
+
end
|
898
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
899
|
+
params = {"realm": "device", "threshold": 10}
|
900
|
+
resp = Telemetry.set_bst_threshold(conn, params)
|
901
|
+
params = {
|
902
|
+
"include-ingress-port-priority-group" => 0,
|
903
|
+
"include-ingress-port-service-pool" => 0,
|
904
|
+
"include-ingress-service-pool" => 0,
|
905
|
+
"include-egress-port-service-pool" => 0,
|
906
|
+
"include-egress-service-pool" => 0,
|
907
|
+
"include-egress-rqe-queue" => 0,
|
908
|
+
"include-device" => 1
|
909
|
+
}
|
910
|
+
resp = Telemetry.get_bst_threshold(conn, params)
|
911
|
+
if resp['report'][0]['data'] == '10'
|
912
|
+
file.puts("CH_LEN_057 set_bst_threshold -------->PASSED\n")
|
913
|
+
else
|
914
|
+
file.puts("CH_LEN_057 set_bst_threshold -------->FAILED\n")
|
915
|
+
end
|
916
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
917
|
+
resp = Telemetry.clear_bst_threshold(conn)
|
918
|
+
if resp != nil
|
919
|
+
file.puts("CH_LEN_058 clear_bst_threshold -------->FAILED\n")
|
920
|
+
else
|
921
|
+
file.puts("CH_LEN_058 clear_bst_threshold -------->PASSED\n")
|
922
|
+
end
|
923
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
924
|
+
resp = Telemetry.clear_bst_stats(conn)
|
925
|
+
if resp != nil
|
926
|
+
file.puts("CH_LEN_059 clear_bst_stats -------->FAILED\n")
|
927
|
+
else
|
928
|
+
file.puts("CH_LEN_059 clear_bst_stats -------->PASSED\n")
|
929
|
+
end
|
930
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
931
|
+
resp = Telemetry.clear_bst_cgsn_ctrs(conn)
|
932
|
+
if resp != nil
|
933
|
+
file.puts("CH_LEN_060 clear_bst_cgsn_ctrs -------->FAILED\n")
|
934
|
+
else
|
935
|
+
file.puts("CH_LEN_060 clear_bst_cgsn_ctrs -------->PASSED\n")
|
936
|
+
end
|
937
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
938
|
+
|
939
|
+
#################################################################
|
940
|
+
|
941
|
+
conf = line.dup
|
942
|
+
conf = conf.split('.')[0]
|
943
|
+
conf = conf + '.conf'
|
944
|
+
file.puts( "\n testing system.rb \n\n")
|
945
|
+
resp = System.get_startup_sw(conn)
|
946
|
+
if resp != nil
|
947
|
+
file.puts("CH_LEN_081 get_startup_sw -------->PASSED\n")
|
948
|
+
else
|
949
|
+
file.puts("CH_LEN_081 get_startup_sw -------->FAILED\n")
|
950
|
+
end
|
951
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
952
|
+
params = {"boot software" => "active"}
|
953
|
+
resp = System.put_startup_sw(conn, params)
|
954
|
+
if resp == nil
|
955
|
+
file.puts("CH_LEN_080 put_startup_sw -------->FAILED\n")
|
956
|
+
else
|
957
|
+
if resp['boot software'] == "active"
|
958
|
+
file.puts( "CH_LEN_080 - put_startup_sw -------->PASSED\n")
|
959
|
+
else
|
960
|
+
file.puts( "CH_LEN_080 - put_startup_sw -------->FAILED\n")
|
961
|
+
end
|
962
|
+
end
|
963
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
964
|
+
params = {
|
965
|
+
"protocol" => "tftp",
|
966
|
+
"serverip" => "10.240.130.108",
|
967
|
+
"dstfile" => "temp/chid/" + conf,
|
968
|
+
"srcfile" => "running_config",
|
969
|
+
"vrf_name" => "management"
|
970
|
+
}
|
971
|
+
resp = System.upload_sw_config(conn, params)
|
972
|
+
if resp != nil
|
973
|
+
file.puts("CH_LEN_085 upload_sw_config -------->PASSED\n")
|
974
|
+
else
|
975
|
+
file.puts("CH_LEN_085 upload_sw_config -------->FAILED\n")
|
976
|
+
end
|
977
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
978
|
+
params = {
|
979
|
+
"protocol" => "tftp",
|
980
|
+
"serverip" => "10.240.130.108",
|
981
|
+
"srcfile" => "temp/chid/" + conf,
|
982
|
+
"dstfile" => "running_config",
|
983
|
+
"vrf_name" => "management"
|
984
|
+
}
|
985
|
+
resp = System.download_sw_config(conn, params)
|
986
|
+
if resp != nil
|
987
|
+
file.puts("CH_LEN_083 download_sw_config -------->PASSED\n")
|
988
|
+
else
|
989
|
+
file.puts("CH_LEN_083 download_sw_config -------->FAILED\n")
|
990
|
+
end
|
991
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
992
|
+
resp = System.save_config(conn)
|
993
|
+
if resp != nil
|
994
|
+
file.puts("CH_LEN_084 save_config -------->PASSED\n")
|
995
|
+
else
|
996
|
+
file.puts("CH_LEN_084 save_config -------->FAILED\n")
|
997
|
+
end
|
998
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
999
|
+
params = {
|
1000
|
+
"protocol" => "tftp",
|
1001
|
+
"serverip" => "10.240.130.108",
|
1002
|
+
"dstfile" => "running_config",
|
1003
|
+
"vrf_name" => "management"
|
1004
|
+
}
|
1005
|
+
resp = System.upload_tech_support(conn, params)
|
1006
|
+
if resp != nil
|
1007
|
+
file.puts("CH_LEN_086 upload_tech_support -------->PASSED\n")
|
1008
|
+
else
|
1009
|
+
file.puts("CH_LEN_086 upload_tech_support -------->FAILED\n")
|
1010
|
+
end
|
1011
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
1012
|
+
img = YAML.load_file(line)
|
1013
|
+
image = img['image']
|
1014
|
+
params = {
|
1015
|
+
"protocol" => "tftp",
|
1016
|
+
"serverip" => "10.240.130.108",
|
1017
|
+
"srcfile" => "temp/chid/" + image,
|
1018
|
+
"imgtype" => "all",
|
1019
|
+
"vrf_name" => "default"
|
1020
|
+
}
|
1021
|
+
resp = System.download_boot_img(conn, params)
|
1022
|
+
if resp != nil
|
1023
|
+
file.puts("CH_LEN_079 download_boot_img -------->PASSED\n")
|
1024
|
+
else
|
1025
|
+
file.puts("CH_LEN_079 download_boot_img -------->FAILED\n")
|
1026
|
+
end
|
1027
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
1028
|
+
resp = System.get_transfer_status(conn, 'download', 'image')
|
1029
|
+
if resp != nil
|
1030
|
+
file.puts("CH_LEN_087 get_transfer_status -------->PASSED\n")
|
1031
|
+
else
|
1032
|
+
file.puts("CH_LEN_087 get_transfer_status -------->FAILED\n")
|
1033
|
+
end
|
1034
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
1035
|
+
puts "Sleeping to complete image download on switch"
|
1036
|
+
sleep(200)
|
1037
|
+
resp = System.reset_switch(conn)
|
1038
|
+
if resp != nil
|
1039
|
+
file.puts("CH_LEN_082 reset_switch -------->PASSED\n")
|
1040
|
+
else
|
1041
|
+
file.puts("CH_LEN_082 reset_switch -------->FAILED\n")
|
1042
|
+
end
|
1043
|
+
file.puts( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
|
1044
|
+
end
|
1045
|
+
|
1046
|
+
puts("\n\n\n CHECK \\tmp\\test_log.txt FOR RESULTS\n\n")
|