mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	Created script like create_bridge for creating bonds
This commit is contained in:
		
							
								
								
									
										97
									
								
								py-scripts/create_bond.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										97
									
								
								py-scripts/create_bond.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| #!/usr/bin/env python3 | ||||
|  | ||||
| """create_bond.py Script to create a bond | ||||
|  | ||||
| This script can be used to create a bond, only one can be created at a time. Network devices must be specified | ||||
| as a list of comma-separated items with no spaces. | ||||
|  | ||||
| Use './create_bond.py --help' to see command line usage and options | ||||
| Copyright 2021 Candela Technologies Inc | ||||
| License: Free to distribute and modify. LANforge systems must be licensed. | ||||
| """ | ||||
|  | ||||
| import sys | ||||
| import os | ||||
| import argparse | ||||
|  | ||||
| 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')) | ||||
| import LANforge | ||||
| from LANforge.lfcli_base import LFCliBase | ||||
| from LANforge import LFUtils | ||||
| from realm import Realm | ||||
| import time | ||||
| import pprint | ||||
|  | ||||
|  | ||||
| class CreateBond(LFCliBase): | ||||
|     def __init__(self, _network_dev_list=None, | ||||
|                  _host=None, | ||||
|                  _port=None, | ||||
|                  _shelf=1, | ||||
|                  _resource=1, | ||||
|                  _debug_on=False): | ||||
|         super().__init__(_host, _port) | ||||
|         self.host = _host | ||||
|         self.shelf = _shelf | ||||
|         self.resource = _resource | ||||
|         self.timeout = 120 | ||||
|         self.debug = _debug_on | ||||
|         self.network_dev_list = _network_dev_list | ||||
|  | ||||
|     def build(self): | ||||
|         data = { | ||||
|             'shelf': self.shelf, | ||||
|             'resource': self.resource, | ||||
|             'port': 'bond0000', | ||||
|             'network_devs': self.network_dev_list | ||||
|         } | ||||
|         self.json_post("cli-json/add_bond", data) | ||||
|         time.sleep(3) | ||||
|         bond_set_port = { | ||||
|             "shelf": self.shelf, | ||||
|             "resource": self.resource, | ||||
|             "port": "bond0000", | ||||
|             "current_flags": 0x80000000, | ||||
|             "interest": 0x4000  # (0x2 + 0x4000 + 0x800000)  # current, dhcp, down | ||||
|         } | ||||
|         self.json_post("cli-json/set_port", bond_set_port) | ||||
|  | ||||
|  | ||||
| def main(): | ||||
|     parser = LFCliBase.create_basic_argparse( | ||||
|         prog='create_bond.py', | ||||
|         formatter_class=argparse.RawTextHelpFormatter, | ||||
|         epilog='''\ | ||||
|          Create bonds | ||||
|             ''', | ||||
|  | ||||
|         description='''\ | ||||
|         create_bond.py | ||||
| -------------------- | ||||
| Command example: | ||||
| ./create_bond.py | ||||
|     --network_dev_list eth0,eth1 | ||||
|     --debug | ||||
|             ''') | ||||
|  | ||||
|     required = parser.add_argument_group('required arguments') | ||||
|     required.add_argument('--network_dev_list', help='list of network devices in the bond, must be comma separated ' | ||||
|                                                      'with no spaces', required=True) | ||||
|  | ||||
|     args = parser.parse_args() | ||||
|  | ||||
|     create_bond = CreateBond(_host=args.mgr, | ||||
|                              _port=args.mgr_port, | ||||
|                              _network_dev_list=args.network_dev_list, | ||||
|                              _debug_on=args.debug | ||||
|                              ) | ||||
|     create_bond.build() | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     main() | ||||
		Reference in New Issue
	
	Block a user
	 Logan Lipke
					Logan Lipke