mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 02:38:03 +00:00 
			
		
		
		
	version of port_probe2 that uses minimum logic to print out port probe
Signed-off-by: Jed Reynolds <jreynolds@candelatech.com>
This commit is contained in:
		
							
								
								
									
										77
									
								
								py-scripts/port_probe2.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										77
									
								
								py-scripts/port_probe2.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,77 @@ | |||||||
|  | #!/usr/bin/env python3 | ||||||
|  | import json | ||||||
|  | import os | ||||||
|  | import pprint | ||||||
|  | import sys | ||||||
|  |  | ||||||
|  | if sys.version_info[0] != 3: | ||||||
|  |     print("This script requires Python 3") | ||||||
|  |     exit(1) | ||||||
|  |  | ||||||
|  | if 'py-json' not in sys.path: | ||||||
|  |     sys.path.append(os.path.join(os.path.abspath('..'), 'py-json')) | ||||||
|  |  | ||||||
|  | from time import sleep | ||||||
|  | from LANforge.lfcli_base import LFCliBase | ||||||
|  | from realm import Realm | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # see https://stackoverflow.com/questions/9295439/python-json-loads-fails-with-valueerror-invalid-control-character-at-line-1-c/16544933#16544933 | ||||||
|  | # re-load and reexport JSON with  strict=False? | ||||||
|  |  | ||||||
|  | class ProbePort2(LFCliBase): | ||||||
|  |     def __init__(self, | ||||||
|  |                  lfhost=None, | ||||||
|  |                  lfport=None, | ||||||
|  |                  debug=False, | ||||||
|  |                  eid_str=None): | ||||||
|  |         super().__init__(_lfjson_host=lfhost, | ||||||
|  |                          _lfjson_port=lfport, | ||||||
|  |                          _debug=debug) | ||||||
|  |         hunks = eid_str.split(".") | ||||||
|  |         self.probepath = "/probe/1/%s/%s" % (hunks[-2], hunks[-1]) | ||||||
|  |         # self.decoder = json.JSONDecoder() | ||||||
|  |  | ||||||
|  |     def run(self): | ||||||
|  |         self.json_post(self.probepath, {}) | ||||||
|  |         sleep(0.2) | ||||||
|  |         response = self.json_get(self.probepath) | ||||||
|  |         if not response: | ||||||
|  |             print("problem probing port %s" % self.probepath) | ||||||
|  |             exit(1) | ||||||
|  |         # pprint.pprint(response) | ||||||
|  |         if "probe-results" not in response: | ||||||
|  |             print("problem probing port %s" % self.probepath) | ||||||
|  |             exit(1) | ||||||
|  |  | ||||||
|  |         probe_res = response["probe-results"][0] | ||||||
|  |         #pprint.pprint(probe_res) | ||||||
|  |         for (key, value) in probe_res.items(): | ||||||
|  |             # probe_results = [key] | ||||||
|  |             print("port "+key) | ||||||
|  |             # pprint.pprint(value['probe results']) | ||||||
|  |             xlated_results = str(value['probe results']).replace("\\n", "\n").replace("\\r", "\r").replace("\\t", "\t") | ||||||
|  |             print(xlated_results) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def main(): | ||||||
|  |     parser = Realm.create_bare_argparse( | ||||||
|  |         prog=__name__, | ||||||
|  |         description='''\ | ||||||
|  |     Example: | ||||||
|  |     ./port_probe2.py --port 1.1.eth0 | ||||||
|  |         ''') | ||||||
|  |  | ||||||
|  |     parser.add_argument('--mode', help='Used to force mode of stations') | ||||||
|  |     parser.add_argument('--port_eid', help='EID of station to be used', default="1.1.eth0") | ||||||
|  |  | ||||||
|  |     args = parser.parse_args() | ||||||
|  |     probe = ProbePort2(lfhost=args.mgr, | ||||||
|  |                        lfport=args.mgr_port, | ||||||
|  |                        debug=args.debug, | ||||||
|  |                        eid_str=args.port_eid) | ||||||
|  |     probe.run() | ||||||
|  |  | ||||||
|  |  | ||||||
|  | if __name__ == "__main__": | ||||||
|  |     main() | ||||||
		Reference in New Issue
	
	Block a user
	 Jed Reynolds
					Jed Reynolds