Aviz Networks AIMS SONIC Ruby API Library¶ ↑
Overview¶ ↑
The Ruby Client for Azure SONIC REST API provides a native Ruby implementation for programming Aviz Networks SONIC network devices using AIMS. The Ruby client provides the ability to build native applications in Ruby that can communicate with SONIC remotely over a HTTP transport protocol.
The Ruby API implemenation also provides an API layer for building native Ruby objects that allow for configuration and management of Aviz Networks SONIC switches using AIMS.
Requirements¶ ↑
-
Aviz Networks SONIC switches
-
Ruby 2.2.3 or later
SONIC Ruby APIs¶ ↑
The SONIC Ruby Client was designed to be easy to use and develop plugins or tools that interface with the Aviz Networks SONIC switches.
Using the API¶ ↑
See the below example for using the API. Also refer test/ directory for more details.
Switch Configuration file¶ ↑
This configuration file is used to define the configuration options or model for switches (switch.yml or any xxx.yml)
protocol : 'http' # protocol (HTTP) port : '8090' # HTTP(s) port number (8090 - HTTP) ip : 'switch ip address' # Switch IP address user : 'username' # Switch Credentials password : 'password' #switch credentials
Creating connection and sending configurations¶ ↑
Below demonstrates a basic connection using the API. For more examples please see the examples folder
#### import the libraries require 'sonic-rbapi/connect' require 'sonic-rbapi/vlan' ##### create connection to the node using the configuration file conn = Connect.new(param) where param is a dictionary formed either from the config file or hardcoded with the following key value pairs protocol => 'http' # protocol (HTTP) port => '8090' # HTTP(s) port number (8090 - HTTP) ip => 'switch ip address' # Switch IP address user => 'username' #Switch Credentials password => 'password' #Switch Credentials ##### Use VLAN APIs to retrieve all VLAN information Vlan.get_all_vlan(conn) ##### Use VLAN APIs to create VLANs vlan_id = 10 dhcp_servers = ["10.10.10.1", "10.10.10.2"] resp = Vlan.create_vlan(conn, vlan_id, dhcp_servers) ##### Use VLAN APIs to retrieve specific VLAN information resp = Vlan.get_vlan(conn, 20) ##### Use VLAN APIs to delete VLANs Vlan.delete_vlan(conn, 20)