mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-03 20:27:54 +00:00 
			
		
		
		
	updates py-json README
This commit is contained in:
		@@ -9,12 +9,74 @@ mode using the `-daemon` switch.
 | 
			
		||||
Follow our [getting started cookbook](http://www.candelatech.com/cookbook.php?vol=cli&book=Querying+the+LANforge+GUI+for+JSON+Data)
 | 
			
		||||
to learn more about how to operate your LANforge client.
 | 
			
		||||
 | 
			
		||||
## Getting Started ##
 | 
			
		||||
New automation tests and JSON client scripts should go in `../py-scripts`. This directory
 | 
			
		||||
is intended for utility and library scripts. To use this module, make sure your include path
 | 
			
		||||
captures this module by adding it to your `sys.path`. We recommend your scripts in `../py-scripts`
 | 
			
		||||
begin with these imports:
 | 
			
		||||
 | 
			
		||||
    `if 'py-json' not in sys.path:
 | 
			
		||||
        sys.path.append('../py-json')
 | 
			
		||||
    from LANforge import LFUtils
 | 
			
		||||
    from LANforge import lfcli_base
 | 
			
		||||
    from LANforge.lfcli_base import LFCliBase
 | 
			
		||||
    from LANforge.LFUtils import *
 | 
			
		||||
    import realm
 | 
			
		||||
    from realm import Realm
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## These Scripts ##
 | 
			
		||||
 | 
			
		||||
  * `show_ports.py`: this simple example shows how to gather a digest of ports
 | 
			
		||||
  * `__init__.py`: this is a module header and it defines its relationship to sub-module LANforge,
 | 
			
		||||
                   requiring LFRequest.
 | 
			
		||||
  * `LANforge`: this module is for our json library. Use gain access to these by using:
 | 
			
		||||
                `import LANforge`
 | 
			
		||||
                `from LANforge import LFUtils`
 | 
			
		||||
                `from LANforge import LFRequest`
 | 
			
		||||
  * `create_sta.py`: Please follow though `create_sta.py` to see how you can
 | 
			
		||||
                     utilize the JSON API provided by the LANforge client. It
 | 
			
		||||
                     is possible to use similar commands to create virtual Access points.
 | 
			
		||||
  * `create_wanlink.py`: example that creates a WANlink
 | 
			
		||||
  * `generic_cx.py`: example that creates a cross connect
 | 
			
		||||
  * `realm.py`: module defining the Realm class. `Realm` is a toolbox class that also serves as a facade
 | 
			
		||||
                for finer-grained methods in LFUtils and LFRequest:
 | 
			
		||||
    * `__init__`: our constructor
 | 
			
		||||
    * `load()`: load a test scenario database, as you would find in the GUI Status tab
 | 
			
		||||
    * `cx_list()`: request json list of cross connects
 | 
			
		||||
    * `station_map()`: request a map of stations via `/port/list` and alter the list to name based map of only stations
 | 
			
		||||
    * `station_list()`: request a list of stations
 | 
			
		||||
    * `vap_list()`: request a list of virtual APs
 | 
			
		||||
    * `remove_vlan_by_eid()`: a way of deleting a port/station/vAP
 | 
			
		||||
    * `find_ports_like()`: returns a list of ports matching a string prefix, like:
 | 
			
		||||
      * `sta\*` matches names starting with `sta`
 | 
			
		||||
      * `sta10+` matches names with port numbers 10 or greater
 | 
			
		||||
      * `sta[10..20]` matches a range of stations including the range sta10 -- sta20
 | 
			
		||||
    * `name_to_eid()`: takes a name like `1.1.eth1` and returns it split into an array `[1, 1, "eth1"]`
 | 
			
		||||
    * `parse_time()`: returns numeric seconds when given strings like `1d`, `2h`, or `3m` or `4s`
 | 
			
		||||
    * `parse_link()`:
 | 
			
		||||
    * `new_station_profile()`: creates a blank station profile, configure station properties in this profile
 | 
			
		||||
                               and then use its `create()` method to create a series of stations
 | 
			
		||||
    * `new_l3_cx_profile()`: creates a blank Layer-3 profile, configure this connection profile and
 | 
			
		||||
                             then use its `create()` method to create a series of endpoints and cross connects
 | 
			
		||||
    * `new_l4_cx_profile()`: creates a blank Layer-4 (http/ftp) profile, configure it then call `create()`
 | 
			
		||||
    * `new_generic_cx_profile()`: creates a blank Generic connection profile (for lfping/iperf3/curl-post/speedtest.net)
 | 
			
		||||
                                  then configure and call `create()`
 | 
			
		||||
    * `class L3CXProfile`: this class is the Layer-3 connection profile
 | 
			
		||||
      * `__init__`: should be called by `Realm::new_l3_cx_profile()`
 | 
			
		||||
      * `create()`: pass endpoint-type, side-a list, side-b list, and sleep_time between creating endpoints and connections
 | 
			
		||||
      * Parameters for this profile include:
 | 
			
		||||
        * prefix
 | 
			
		||||
        * txbps
 | 
			
		||||
    * `class L4CXProfile`: this class is the Layer-4 connection profile
 | 
			
		||||
      * `__init__`: should be called by `Realm::new_l4_cx_profile()`
 | 
			
		||||
      * `create()`: pass a list of ports to create endpoints on, note that resulting cross connects are prefixed with `CX_`
 | 
			
		||||
      * Parameters for this profile include:
 | 
			
		||||
        * url
 | 
			
		||||
        * requests_per_ten: number of requests to make in ten minutes
 | 
			
		||||
        *
 | 
			
		||||
  * `show_ports.py`: this simple example shows how to gather a digest of ports
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## LANforge ##
 | 
			
		||||
This directory defines the LANforge module holding:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user