def view_interface(request): return_dict = {} try: template = 'logged_in_error.html' req_ret, err = django_utils.get_request_parameter_values( request, ['name']) if err: raise Exception(err) if 'name' not in req_ret: raise Exception('Invalid request, please use the menus') name = req_ret['name'] interfaces, err = networking.get_interfaces() if err: raise Exception(err) elif name not in interfaces: raise Exception("Specified interface not found") if interfaces[name]['vlan']: if '.' not in name: raise Exception('Invalid VLAN name : %s' % name) comps = name.split('.') if len(comps) != 2: raise Exception('Invalid VLAN name : %s' % name) return_dict['parent_nic'] = comps[0] return_dict['nic'] = interfaces[name] if interfaces[name]['vlan_ids']: return_dict['vlans'] = [] for vlan_id in interfaces[name]['vlan_ids']: if '%s.%d' % (name, vlan_id) in interfaces: return_dict['vlans'].append({ 'name': '%s.%d' % (name, vlan_id), 'vlan_id': vlan_id, 'info': interfaces['%s.%d' % (name, vlan_id)] }) return_dict['interfaces'] = interfaces return_dict['name'] = name template = "view_interface.html" return django.shortcuts.render_to_response( template, return_dict, context_instance=django.template.context.RequestContext(request)) except Exception, e: return_dict['base_template'] = "networking_base.html" return_dict["page_title"] = 'View network interface details' return_dict['tab'] = 'view_interfaces_tab' return_dict["error"] = 'Error loading interface details' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def get_iface(): iface = {} interfaces, err = networking.get_interfaces() if interfaces: for name, interface in interfaces.items(): if name.startswith('lo'): continue if 'AF_INET' in interface['addresses']: iface[name] = interface['addresses']['AF_INET'][0]['addr'] else: print 'Error reading interfaces: %s' % err return iface
def view_interfaces(request): return_dict = {} try: template = 'logged_in_error.html' nics, err = networking.get_interfaces() if err: raise Exception(err) bonds, err = networking.get_bonding_info_all() if err: raise Exception(err) if "ack" in request.GET: if request.GET["ack"] == "reset": return_dict[ 'ack_message'] = "Successfully reset the address configuration of the network interface" if request.GET["ack"] == "saved": return_dict[ 'ack_message'] = "Network interface information successfully updated" if request.GET["ack"] == "removed_bond": return_dict[ 'ack_message'] = "Network bond successfully removed" if request.GET["ack"] == "removed_vlan": return_dict['ack_message'] = "VLAN successfully removed" if request.GET["ack"] == "created_vlan": return_dict['ack_message'] = "VLAN successfully created" if request.GET["ack"] == "state_down": return_dict[ 'ack_message'] = "Network interface successfully disabled. The state change may take a couple of seconds to reflect on this page so please refresh it to check the updated status." if request.GET["ack"] == "state_up": return_dict[ 'ack_message'] = "Network interface successfully enabled. The state change may take a couple of seconds to reflect on this page so please refresh it to check the updated status." if request.GET["ack"] == "created_bond": return_dict[ 'ack_message'] = "Network bond successfully created. Please edit the address information for the bond in order to use it." return_dict["nics"] = nics return_dict["bonds"] = bonds template = "view_interfaces.html" return django.shortcuts.render_to_response( template, return_dict, context_instance=django.template.context.RequestContext(request)) except Exception, e: return_dict['base_template'] = "networking_base.html" return_dict["page_title"] = 'View network interfaces' return_dict['tab'] = 'view_interfaces_tab' return_dict["error"] = 'Error loading interfaces' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def __init__(self, *args, **kwargs): super(CreateRouteForm, self).__init__(*args, **kwargs) ch = [] interfaces, err = networking.get_interfaces() for key, value in interfaces.iteritems(): # print value['addresses']['AF_INET'] # check if the interface has an ip address assigned to it ? if (value['up_status'] == 'up') and ('AF_INET' in value['addresses']): # Just make sure the ip addr is not the localhost address. Just # in case. if value['addresses']['AF_INET'][0]['addr'] != "127.0.0.1": ch.append((key, key)) self.fields["interface"] = forms.MultipleChoiceField( widget=forms.CheckboxSelectMultiple(), choices=ch)
def get_interface_info(): """Gets a more concise version of the interface info than networking provides.""" d = {} try: ifaces, err = networking.get_interfaces() if err: raise Exception(err) # print ifaces if ifaces: for iface_name, iface in ifaces.items(): td = {} td['hwaddr'] = iface['addresses']['AF_LINK'][0]['addr'] d[iface_name] = td except Exception, e: return None, 'Error retrieving interface info : %s' % str(e)
def view_bond(request): return_dict = {} try: template = 'logged_in_error.html' req_ret, err = django_utils.get_request_parameter_values( request, ['name']) if err: raise Exception(err) if 'name' not in req_ret: raise Exception('Invalid request, please use the menus') name = req_ret['name'] interfaces, err = networking.get_interfaces() if err: raise Exception(err) elif name not in interfaces: raise Exception("Specified interface not found") bond, err = networking.get_bonding_info(name) if err: raise Exception(err) if not bond: raise Exception("Specified bond not found") return_dict['nic'] = interfaces[name] return_dict['bond'] = bond return_dict['name'] = name template = "view_bond.html" return django.shortcuts.render_to_response( template, return_dict, context_instance=django.template.context.RequestContext(request)) except Exception, e: return_dict['base_template'] = "networking_base.html" return_dict["page_title"] = 'View network bond details' return_dict['tab'] = 'view_interfaces_tab' return_dict["error"] = 'Error loading network bond details' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def display_config(): try: hostname = socket.gethostname() if hostname: print "Hostname : %s" % hostname else: print "Hostname : Not set" print interfaces, err = networking.get_interfaces() if interfaces: for name, interface in interfaces.items(): if name.startswith('lo'): continue print 'Interface : %s. ' % name if 'AF_INET' in interface['addresses']: print 'IP Address : %s, Netmask %s. ' % ( interface['addresses']['AF_INET'][0]['addr'], interface['addresses']['AF_INET'][0]['netmask']), else: print 'No address assigned. ', if 'slave_to' in interface: print 'NIC bonded slave to %s.' % interface['slave_to'], if 'bonding_master' in interface: print 'NIC bonded master. ', bonding_type, err = networking.get_bonding_type(name) if bonding_type: print 'Bonding type %d. ' % bonding_type print 'Carrier status : %s. ' % interface['carrier_status'], print 'NIC status : %s. ' % interface['up_status'] print else: if err: print 'Error retrieving interface information : %s' % err dns_list, err = networking.get_name_servers() if dns_list: print "DNS lookup servers :", print ', '.join(dns_list) print except Exception, e: print "Error displaying system configuration : %s" % e return -1
def display_config(): try: hostname = socket.gethostname() if hostname: print "Hostname : %s" % hostname else: print "Hostname : Not set" print interfaces, err = networking.get_interfaces() if interfaces: for name, interface in interfaces.items(): if name.startswith('lo'): continue print 'Interface : %s. ' % name if 'AF_INET' in interface['addresses']: print 'IP Address : %s, Netmask %s. ' % (interface['addresses']['AF_INET'][0]['addr'], interface['addresses']['AF_INET'][0]['netmask']), else: print 'No address assigned. ', if 'slave_to' in interface: print 'NIC bonded slave to %s.' % interface['slave_to'], if 'bonding_master' in interface: print 'NIC bonded master. ', bonding_type, err = networking.get_bonding_type(name) if bonding_type: print 'Bonding type %d. ' % bonding_type print 'Carrier status : %s. ' % interface['carrier_status'], print 'NIC status : %s. ' % interface['up_status'] print else: if err: print 'Error retrieving interface information : %s' % err dns_list, err = networking.get_name_servers() if dns_list: print "DNS lookup servers :", print ', '.join(dns_list) print except Exception, e: print "Error displaying system configuration : %s" % e return -1
def get_interface_status(): """Gets a more concise version of the interface info and status than networking provides.""" d = {} try: ifaces, err = networking.get_interfaces() if err: raise Exception(err) # print ifaces if ifaces: for iface_name, iface in ifaces.items(): td = {} td['up'] = iface['up_status'] if 'AF_INET' in iface['addresses'] and iface['addresses'][ 'AF_INET'] and iface['addresses']['AF_INET'][0]: inet_list = [] for inet in iface['addresses']['AF_INET']: inet_dict = {} if 'addr' in inet: inet_dict['address'] = inet['addr'] if 'netmask' in inet: inet_dict['netmask'] = inet['netmask'] if 'broadcast' in inet: inet_dict['broadcast'] = inet['broadcast'] inet_dict['label'] = iface_name inet_list.append(inet_dict) td['inet'] = inet_list if 'bonding_master' in iface: td['bonding_master'] = True if 'slave_to' in iface: td['slave_to'] = iface['slave_to'] if 'carrier_status' in iface: td['carrier_status'] = iface['carrier_status'] if 'bootproto' in iface: td['boot_proto'] = iface['bootproto'] d[iface_name] = td except Exception, e: return None, 'Error retrieving interface status : %s' % str(e)
def get_interface_status(): """Gets a more concise version of the interface info and status than networking provides.""" d = {} try: ifaces, err = networking.get_interfaces() if err: raise Exception(err) # print ifaces if ifaces: for iface_name, iface in ifaces.items(): td = {} td['up'] = iface['up_status'] if 'AF_INET' in iface['addresses'] and iface['addresses']['AF_INET'] and iface['addresses']['AF_INET'][0]: inet_list = [] for inet in iface['addresses']['AF_INET']: inet_dict = {} if 'addr' in inet: inet_dict['address'] = inet['addr'] if 'netmask' in inet: inet_dict['netmask'] = inet['netmask'] if 'broadcast' in inet: inet_dict['broadcast'] = inet['broadcast'] inet_dict['label'] = iface_name inet_list.append(inet_dict) td['inet'] = inet_list if 'bonding_master' in iface: td['bonding_master'] = True if 'slave_to' in iface: td['slave_to'] = iface['slave_to'] if 'carrier_status' in iface: td['carrier_status'] = iface['carrier_status'] if 'bootproto' in iface: td['boot_proto'] = iface['bootproto'] d[iface_name] = td except Exception, e: return None, 'Error retrieving interface status : %s' % str(e)
def configure_interface(): try: os.system('clear') interfaces, err = networking.get_interfaces() if err: raise Exception( 'Error retrieving interface information : %s' % err) if not interfaces: raise Exception('No interfaces detected') print print print 'IntegralSTOR interface configuration' print '--------------------------------------------' print print print 'Current network interfaces : ' print for if_name, iface in interfaces.items(): if if_name.startswith('lo'): continue print '- %s' % if_name print valid_input = False while not valid_input: ifname = raw_input( 'Enter the name of the interface that you wish to configure : ') if ifname not in interfaces or ifname.startswith('lo'): print 'Invalid interface name' else: valid_input = True print ip_info, err = networking.get_ip_info(ifname) ''' if err: raise Exception('Error retrieving interface information : %s'%err) ''' if ip_info: ip = ip_info["ipaddr"] netmask = ip_info["netmask"] if "default_gateway" in ip_info: gateway = ip_info["default_gateway"] else: gateway = None else: ip = None netmask = None gateway = None old_boot_proto, err = networking.get_interface_bootproto(ifname) if err: # raise Exception( # 'Error retrieving interface information : %s' % err) old_boot_proto = '' config_changed = False str_to_print = "Configure for DHCP or static addressing (dhcp/static)? : " valid_input = False while not valid_input: input = raw_input(str_to_print) if input: if input.lower() in ['static', 'dhcp']: valid_input = True boot_proto = input.lower() if boot_proto != old_boot_proto: config_changed = True if not valid_input: print "Invalid value. Please try again." print if boot_proto == 'static': if ip: str_to_print = "Enter IP address (currently %s, press enter to retain current value) : " % ip else: str_to_print = "Enter IP address (currently not set) : " valid_input = False while not valid_input: input = raw_input(str_to_print) if input: ok, err = networking.validate_ip(input) if err: raise Exception('Error validating IP : %s' % err) if ok: valid_input = True ip = input config_changed = True elif ip: valid_input = True if not valid_input: print "Invalid value. Please try again." print if netmask: str_to_print = "Enter netmask (currently %s, press enter to retain current value) : " % netmask else: str_to_print = "Enter netmask (currently not set) : " valid_input = False while not valid_input: input = raw_input(str_to_print) if input: ok, err = networking.validate_netmask(input) if err: raise Exception('Error validating netmask : %s' % err) if ok: valid_input = True netmask = input config_changed = True elif netmask: valid_input = True if not valid_input: print "Invalid value. Please try again." print if gateway: str_to_print = "Enter gateway (currently %s, press enter to retain current value) : " % gateway else: str_to_print = "Enter gateway (currently not set) : " valid_input = False while not valid_input: input = raw_input(str_to_print) if input: ok, err = networking.validate_ip(input) if err: raise Exception('Error validating gateway : %s' % err) if ok: valid_input = True gateway = input config_changed = True elif gateway: valid_input = True if not valid_input: print "Invalid value. Please try again." print if config_changed: d = {} d['addr_type'] = boot_proto if boot_proto == 'static': d['ip'] = ip d['netmask'] = netmask d['default_gateway'] = gateway ret, err = networking.update_interface_ip(ifname, d) if not ret: if err: raise Exception( 'Error changing interface address : %s' % err) else: raise Exception('Error changing interface address') restart = False print print valid_input = False while not valid_input: str_to_print = 'Restart network services now (y/n) :' print input = raw_input(str_to_print) if input: if input.lower() in ['y', 'n']: valid_input = True if input.lower() == 'y': restart = True if not valid_input: print "Invalid value. Please try again." print if restart: ret, err = networking.restart_networking() if not ret: if err: raise Exception(err) else: raise Exception("Couldn't restart.") use_salt, err = config.use_salt() if err: raise Exception(err) if use_salt: (r, rc), err = command.execute_with_rc( 'service salt-minion restart') if err: raise Exception(err) if rc == 0: print "Salt minion service restarted succesfully." else: print "Error restarting salt minion services." raw_input('Press enter to return to the main menu') return -1 else: print print raw_input( 'No changes have been made to the configurations. Press enter to return to the main menu.') return 0 except Exception, e: print "Error configuring network settings : %s" % e return -1
def update_interface_address(request): return_dict = {} try: req_ret, err = django_utils.get_request_parameter_values( request, ['name']) if err: raise Exception(err) if 'name' not in req_ret: raise Exception('Invalid request, please use the menus') name = req_ret['name'] interfaces, err = networking.get_interfaces() if err: raise Exception(err) elif not interfaces or name not in interfaces: raise Exception("Specified interface not found") return_dict['nic'] = interfaces[name] if request.method == "GET": initial = {} initial['name'] = name initial['mtu'] = name if 'mtu' in interfaces[name] and interfaces[name]['mtu']: initial['mtu'] = interfaces[name]['mtu'] if 'bootproto' in interfaces[name] and interfaces[name][ 'bootproto'] == 'dhcp': initial['addr_type'] = 'dhcp' else: initial['addr_type'] = 'static' if 'addresses' in interfaces[name] and 'AF_INET' in interfaces[ name]['addresses'] and interfaces[name]['addresses'][ 'AF_INET']: initial['ip'] = interfaces[name]['addresses']['AF_INET'][ 0]['addr'] initial['netmask'] = interfaces[name]['addresses'][ 'AF_INET'][0]['netmask'] # print interfaces[name] if 'gateways' in interfaces[name] and interfaces[name]['gateways']: if interfaces[name]['gateways'][0][2]: initial['default_gateway'] = interfaces[name]['gateways'][ 0][0] # print initial form = networking_forms.NICForm(initial=initial) return_dict['form'] = form return django.shortcuts.render_to_response( "update_interface_address.html", return_dict, context_instance=django.template.context.RequestContext( request)) else: form = networking_forms.NICForm(request.POST) return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response( "update_interface_address.html", return_dict, context_instance=django.template.context.RequestContext( request)) cd = form.cleaned_data result_str = "" success = False result, err = networking.update_interface_ip(cd['name'], cd) if err: raise Exception(err) result, err = networking.restart_networking() if err: raise Exception(err) ip, err = networking.get_ip_info( unicode_utils.convert_unicode_to_string(cd['name'])) if err: raise Exception(err) audit_str = 'Changed the address of %s. New values are IP : %s, netmask: %s' % ( cd['name'], ip['ipaddr'], ip['netmask']) if 'default_gateway' in ip: audit_str += ', default gateway : %s' % ip['default_gateway'] audit.audit("edit_interface_address", audit_str, request) return django.http.HttpResponseRedirect( '/view_interface?name=%s&result=addr_changed' % (name)) except Exception, e: return_dict['base_template'] = "networking_base.html" return_dict["page_title"] = 'Modify network interface addressing' return_dict['tab'] = 'view_interfaces_tab' return_dict["error"] = 'Error modifying network interface addressing' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def create_bond(): try: os.system('clear') interfaces, err = networking.get_interfaces() if err: raise Exception( 'Error retrieving interface information : %s' % err) if not interfaces: raise Exception('No interfaces detected') print '\n\nIntegralSTOR NIC Bonding' print '---------------------------------\n\n' print 'Available interfaces: \n' bm, err = networking.get_bonding_masters() if err: raise Exception(err) bid, err = networking.get_bonding_info_all() if err: raise Exception(err) avail_if = [] for if_name, iface in interfaces.items(): if if_name.startswith('lo') or if_name in bm or if_name in bid['by_slave']: continue print '\t- %s' % if_name avail_if.append(if_name) print "\n" bond_name = None is_name = False while is_name is False: bond_name = raw_input('Provide bond name: ') if bond_name in interfaces or bond_name.startswith('lo'): print "\t- Can't assign %s, it's been taken already. Please provide another one.\n" % bond_name else: is_name = True print "\n" slaves = [] is_ok = False while is_ok is False: s = raw_input( "\nEnter slaves from the shown interface list, separated by comma. - ").split(",") slaves = [inner.strip() for inner in s] for slave in slaves: if slave not in avail_if: break else: is_ok = True print ("\nSelecetd slaves: %s") % slaves confirm = raw_input("\t- Confirm selected slaves (y/n)? ") if confirm.lower() in ["n"]: is_ok = False print "\n" is_ok = False while is_ok is False: mode = raw_input( "Available modes [4]802.3ad, [6]balance-alb] - 4 or 6?: ") if mode in ["4", "6"]: is_ok = True ret, err = networking.create_bond(bond_name, slaves, int(mode)) if not ret: if err: raise Exception('Error creating bond: %s' % err) else: raise Exception("Couldn't create bond") if ret: print "\nBond created! Configure IP to activate.\n" except Exception, e: print "Error: %s" % e return -1
def create_vlan(request): return_dict = {} try: req_ret, err = django_utils.get_request_parameter_values( request, ['nic']) if err: raise Exception(err) if 'nic' not in req_ret: raise Exception('Invalid request, please use the menus') interfaces, err = networking.get_interfaces() if err: raise Exception(err) if not interfaces: raise Exception( "Error loading network interface information : No interfaces found" ) return_dict['interfaces'] = interfaces if_list = [] existing_vlans = [] for if_name, iface in interfaces.items(): if '.' in if_name: comps = if_name.split('.') if len(comps) != 2: raise Exception('Invalid VLAN specification found : %s' % if_name) if int(comps[1]) not in existing_vlans: existing_vlans.append(int(comps[1])) if request.method == "GET": form = networking_forms.CreateVLANForm( existing_vlans=existing_vlans, initial={'base_interface': req_ret['nic']}) return_dict['form'] = form return django.shortcuts.render_to_response( "create_vlan.html", return_dict, context_instance=django.template.context.RequestContext( request)) else: form = networking_forms.CreateVLANForm( request.POST, existing_vlans=existing_vlans) return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response( "create_vlan.html", return_dict, context_instance=django.template.context.RequestContext( request)) cd = form.cleaned_data # print cd result, err = networking.create_vlan(cd['base_interface'], cd['vlan_id']) if not result: if err: raise Exception(err) else: raise Exception('VLAN creation failed!') result, err = networking.restart_networking() if err: raise Exception(err) audit_str = "Created a network VLAN with id %d on the base interface %s" % ( cd['vlan_id'], cd['base_interface']) audit.audit("create_vlan", audit_str, request) return django.http.HttpResponseRedirect( '/view_interfaces?ack=created_vlan') except Exception, e: return_dict['base_template'] = "networking_base.html" return_dict["page_title"] = 'Create a network VLAN' return_dict['tab'] = 'view_interfaces_tab' return_dict["error"] = 'Error creating a network VLAN' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def create_bond(request): return_dict = {} try: interfaces, err = networking.get_interfaces() if err: raise Exception(err) if not interfaces: raise Exception( "Error loading network interface information : No interfaces found" ) bm, err = networking.get_bonding_masters() if err: raise Exception(err) bid, err = networking.get_bonding_info_all() if err: raise Exception(err) return_dict['interfaces'] = interfaces iface_list = [] existing_bonds = [] for if_name, iface in interfaces.items(): if if_name.startswith('lo') or if_name in bid['by_slave']: continue if if_name in bm: existing_bonds.append(if_name) continue iface_list.append(if_name) return_dict['is_iface_avail'] = False if iface_list: return_dict['is_iface_avail'] = True if request.method == "GET": form = networking_forms.CreateBondForm( interfaces=iface_list, existing_bonds=existing_bonds) return_dict['form'] = form return django.shortcuts.render_to_response( "create_bond.html", return_dict, context_instance=django.template.context.RequestContext( request)) else: form = networking_forms.CreateBondForm( request.POST, interfaces=iface_list, existing_bonds=existing_bonds) return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response( "create_bond.html", return_dict, context_instance=django.template.context.RequestContext( request)) cd = form.cleaned_data print cd result, err = networking.create_bond(cd['name'], cd['slaves'], int(cd['mode'])) if not result: if err: raise Exception(err) else: raise Exception('Bond creation failed!') python_scripts_path, err = config.get_python_scripts_path() if err: raise Exception(err) python_scripts_path, err = config.get_python_scripts_path() if err: raise Exception(err) status_path, err = config.get_system_status_path() if err: raise Exception(err) ret, err = command.get_command_output( "python %s/generate_manifest.py %s" % (python_scripts_path, status_path)) if err: raise Exception(err) ret, err = command.get_command_output( "python %s/generate_status.py %s" % (python_scripts_path, status_path)) if err: raise Exception(err) audit_str = "Created a network bond named %s with slaves %s" % ( cd['name'], ','.join(cd['slaves'])) audit.audit("create_bond", audit_str, request) return django.http.HttpResponseRedirect( '/view_interfaces?ack=created_bond') except Exception, e: return_dict['base_template'] = "networking_base.html" return_dict["page_title"] = 'Create a network interface bond' return_dict['tab'] = 'view_interfaces_tab' return_dict["error"] = 'Error creating a network interface bond' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def remove_bond(): try: os.system('clear') interfaces, err = networking.get_interfaces() if err: raise Exception( 'Error retrieving interface information : %s' % err) if not interfaces: raise Exception('No interfaces detected') print print print 'IntegralSTOR NIC Bonding' print '---------------------------------' print print print 'Active bond(s): \n' bm, err = networking.get_bonding_masters() if err: raise Exception(err) bid, err = networking.get_bonding_info_all() if err: raise Exception(err) avail_if = [] for if_name, iface in interfaces.items(): if if_name in bm: print '\t- %s' % if_name avail_if.append(if_name) print "\n" if not avail_if: raise Exception('There is nothing to remove!') bond_name = None is_name = False while is_name is False: bond_name = raw_input('To remove a bond, provide its name: ') if bond_name not in avail_if: print "\t- Can't remove %s, no such bond exists. Please provide another one.\n" % bond_name else: is_name = True ret, err = networking.delete_bond(bond_name) if not ret: if err: raise Exception('Error removing bond: %s' % err) else: raise Exception("Couldn't remove bond") if ret: print "\n\tBond removed!\n" print print 'Regenerating manifest and status.' python_scripts_path, err = config.get_python_scripts_path() if err: raise Exception(err) python_scripts_path, err = config.get_python_scripts_path() if err: raise Exception(err) status_path, err = config.get_system_status_path() if err: raise Exception(err) ret, err = command.get_command_output( "python %s/generate_manifest.py %s" % (python_scripts_path, status_path)) if err: raise Exception(err) ret, err = command.get_command_output( "python %s/generate_status.py %s" % (python_scripts_path, status_path)) if err: raise Exception(err) print 'Regenerating manifest and status... Done' print except Exception, e: print "Error: %s" % e print return -1