43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
|
|
__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,
|
||
|
|
}
|