__author__ = 'RemiZOffAlex' __email__ = 'remizoffalex@mail.ru' import npyscreen from pyroute2 import NDB ndb = NDB() def network_config(ip, mask, gateway): # ip = IPRoute() # index = ip.link_lookup(ifname='em1')[0] # ip.addr('add', index, address='192.168.0.1', mask=24) # ip.close() # ip = IPDB() # with ip.interfaces.br0 as br0: # em1.add_ip('{ip}/{mask}'.format(ip=ip, mask=mask)) # ip.release() with ndb.interfaces['br0'] as br0: br0.add_ip('{ip}/{mask}'.format(ip=ip, mask=mask)).commit() ndb.routes.create(dst='0.0.0.0/0', gateway=gateway).commit() def TestApp(*args): # These lines create the form and populate it with widgets. # A fairly complex screen in only 8 or so lines of code - a line for each control. F = npyscreen.Form(name = "SaaS",) ip = F.add(npyscreen.TitleText, name = "IP:",) mask = F.add(npyscreen.TitleText, name = "Netmask:",) gateway = F.add(npyscreen.TitleText, name = "Gateway:",) # This lets the user interact with the Form. F.edit() network_config(ip, mask, gateway) return { 'ip': ip.value, 'mask': mask.value, 'gateway': gateway.value, }