Add infector
This commit is contained in:
parent
d12f65af5a
commit
763624dcd3
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
__pycache__
|
||||||
|
dist
|
||||||
42
infector/__init__.py
Normal file
42
infector/__init__.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
__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,
|
||||||
|
}
|
||||||
10
infector/__main__.py
Normal file
10
infector/__main__.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
__author__ = 'RemiZOffAlex'
|
||||||
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
|
|
||||||
|
import npyscreen
|
||||||
|
|
||||||
|
from . import TestApp
|
||||||
|
|
||||||
|
|
||||||
|
result = npyscreen.wrapper_basic(TestApp)
|
||||||
|
print(result)
|
||||||
42
pyproject.toml
Normal file
42
pyproject.toml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
[project]
|
||||||
|
name = "infector"
|
||||||
|
version ="0.1"
|
||||||
|
authors = [
|
||||||
|
{ name="RemiZOffAlex", email="remizoffalex@gmail.com" },
|
||||||
|
]
|
||||||
|
maintainers = [
|
||||||
|
{ name="RemiZOffAlex", email="remizoffalex@gmail.com" },
|
||||||
|
]
|
||||||
|
description = "infector - инсталлятор системы"
|
||||||
|
requires-python = ">=3.10"
|
||||||
|
classifiers = [
|
||||||
|
"Environment :: Console",
|
||||||
|
"Intended Audience :: Developers",
|
||||||
|
"Intended Audience :: Information Technology",
|
||||||
|
"Intended Audience :: System Administrators",
|
||||||
|
"Operating System :: POSIX :: Linux",
|
||||||
|
"Programming Language :: Formal",
|
||||||
|
"Programming Language :: Python",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Programming Language :: Python :: 3.10",
|
||||||
|
"Programming Language :: Python :: 3.11",
|
||||||
|
"Programming Language :: Python :: 3.12",
|
||||||
|
# "Topic :: Software Development :: Code Generators",
|
||||||
|
# "Topic :: Software Development :: Compilers",
|
||||||
|
"Topic :: Software Development :: Libraries",
|
||||||
|
]
|
||||||
|
keywords = ["config", "configurator", "configuration management"]
|
||||||
|
dependencies = [
|
||||||
|
"pyyaml",
|
||||||
|
"pyroute2",
|
||||||
|
"npyscreen",
|
||||||
|
"middleware@git+https://codex.r10x.net/RemiZOffAlex/middleware",
|
||||||
|
]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["flit_core >=3.2,<4"]
|
||||||
|
build-backend = "flit_core.buildapi"
|
||||||
|
|
||||||
|
[tool.flit.sdist]
|
||||||
|
include = []
|
||||||
|
exclude = []
|
||||||
Loading…
Reference in New Issue
Block a user