lenovo-rbapi 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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")
|