def on_submit(self, event, params, vars=None): def isInt(f): for i in f.split('.'): try: int(i) except: return False return True if params[0] == 'dlgSubnet': if vars.getvalue('action', '') == 'OK': ip = vars.getvalue('ip', '') mascara = vars.getvalue('mascara', '') roteador = vars.getvalue('roteador', '') dns = vars.getvalue('dns', '') newSubnet = self._editSubnet == None self._editSubnet = [] self._editSubnet.append(ip) self._editSubnet.append(mascara) self._editSubnet.append(roteador) self._editSubnet.append(dns) if len(ip.split('.')) <> 4 or \ not isInt(ip): self._dlgMessage = 'ERRO: IP inválido!' return if (len(mascara.split('.')) <> 4 and \ len(mascara.split('.')) <> 1) or \ not isInt(mascara): self._dlgMessage = 'ERRO: Máscara inválida!' return if roteador <> '' and \ (len(roteador.split('.')) <> 4 or not isInt(roteador)): self._dlgMessage = 'ERRO: IP do roteador inválido!' return if dns <> '' and \ (len(dns.split('.')) <> 4 or not isInt(dns)): self._dlgMessage = 'ERRO: IP do DNS inválido!' return ret = backend.Config(self.app).addSubnet( ip, mascara, roteador, dns) if ret[0] == '': self._dlgMessage = 'ERRO: Informações erradas' return self._mainMessage = ('Foi %s a rede %s com a máscara %s' % (newSubnet and 'adicionada' or 'modificada', ret[0], ret[1])) self._editSubnet = None elif params[0] == 'dlgHost': if vars.getvalue('action', '') == 'OK': name = vars.getvalue('name', '') mac = vars.getvalue('mac', '') ip = vars.getvalue('ip', '') masc = vars.getvalue('masc', '') ltsp = vars.getvalue('ltsp', '') == '1' self._editHost = [] self._editHost.append(name) self._editHost.append(mac) self._editHost.append(ip) self._editHost.append(masc) if name == '' or \ mac == '' or \ ip == '' or \ masc == '' or \ ltsp == '': self._dlgMessage = 'ERRO: Complete todos os campos para continuar!' return if len(mac.split(':')) <> 6 or \ mac == '00:00:00:00:00:00': self._dlgMessage = 'ERRO: O MAC está incorreto!' return if len(ip.split('.')) <> 4 or \ not isInt(ip): self._dlgMessage = 'ERRO: IP inválido!' return if ( len(masc.split('.')) <> 4 and \ len(masc.split('.')) <> 1 ) or \ not isInt(masc): self._dlgMessage = 'ERRO: Máscara inválida!' return if vars.getvalue('delHost', '') == '1': backend.Config(self.app).delHost(mac) else: backend.Config(self.app).addHost(name, mac, ip, masc, ltsp) self._editHost = None
def on_init(self): be = backend.Config(self.app) self._allSubnets = be.getSubnets()
def get_ui(self): ui = self.app.inflate('ltsp:main') cli = ui.find('listaClientes') server = ui.find('servidorConfig') ui.find('tabs').set('active', self._tab) for i in self.ifaces: if i <> 'lo': ui.find('iface').append(UI.SelectOption(value=i, text=i)) # Criação da lista de clientes for i in self.clientes: if i[2]: local = 'Cliente' else: local = 'Servidor' cli.append( UI.DTR( UI.DTH(UI.Image(file='/dl/ltsp/icon.png')), UI.DTH(UI.Label(text=i[0])), UI.DTH(UI.Label(text=i[1])), UI.DTH(UI.Label(text=local)), UI.DTH( UI.TipIcon(icon='/dl/core/ui/stock/edit.png', id='edit/' + str(self.clientes.index(i)), text='Editar Cliente'), UI.TipIcon(icon='/dl/core/ui/stock/delete.png', id='remover/' + str(self.clientes.index(i)), text='Remover Usuário')))) if len(self.clientes) == 0: ui.remove('listaClientes') # Adicionando as informações da interface lista = backend.Config(self.app).getServer() server.append( UI.DTR( UI.DTH(UI.Label(text="Interface configurada:")), UI.DTH(UI.Label(text="IP:")), UI.DTH(UI.Label(text="Máscara:")), UI.DTH(UI.Label(text="Broadcast:")), UI.DTH(UI.Label(text="Rede:")), )) server.append( UI.DTR( UI.DTH(UI.Label(text=lista[0])), UI.DTH(UI.Label(text=lista[1])), UI.DTH(UI.Label(text=lista[2])), UI.DTH(UI.Label(text=lista[3])), UI.DTH(UI.Label(text=lista[4])), )) # Exibir mensagem de erro da tab 1 if self._msgError <> '': ui.find('msgError').set('text', self._msgError) self._msgError = '' # Exibir mensagem de erro 1 da tab 2 elif self._msgError2 <> '': ui.find('msgError2Spacer').set('height', '10') ui.find('msgError2').set('text', self._msgError2) self._msgError2 = '' # Exibir mensagem de erro 2 da tab 2 elif self._msgError3 <> '': ui.find('msgError3Spacer').set('height', '10') ui.find('msgError3').set('text', self._msgError3) self._msgError3 = '' #Range e Apps r = backend.Config(self.app).getRangeLTSP() if r <> []: ui.find('msgRange').set('text', 'Faixa de IPs de %s até %s' % (r[0], r[1])) ui.find('divRange').append( UI.Button(id="delFaixa", name="delFaixa", text="Remover Faixa de IPs", action="delFaixa")) del r r = backend.Config(self.app).getAppsLTSP() if r.upper() == 'TRUE': #LocalAPPS ativo r = 'Execução de aplicativos configurada para ser nos clientes.' else: r = 'Execução de aplicativos configurada para ser no servidor.' ui.find('msgApps').set('text', r) # Edição de um cliente if self._editing is not None: if self._editing == 'addFaixa': d = self.app.inflate('ltsp:faixa') ui.append('main', d) else: d = self.app.inflate('ltsp:edit') try: h = self.clientes[self._editing] d.find('mac').set('value', h[0]) d.find('ip').set('value', h[1]) if h[2]: d.find('selectC').set('selected', 'True') else: d.find('selectS').set('selected', 'True') except: pass ui.append('main', d) self._tab = 1 if self._infoLTSP: ui.remove('preInfo') pi = ui.find('postInfo') fields = backend.Config(self.app).getLTSPInfo() toAdd = UI.VContainer() for i in fields: toAdd.append(UI.Label(text=i, size="2")) toAdd.append(UI.Spacer(height="10")) pi.append(toAdd) pi.append(UI.Button(text="OK", form="info", id="ok", name="ok")) self._infoLTSP = False if backend.Config(self.app).hasImageCreated(): ui.find('infoImageCreated').set( 'text', 'Info: Uma imagem foi configurada para os clientes.') else: ui.find('infoImageCreated').set( 'text', 'Info: Nenhuma imagem foi configurada para os clientes.') return ui
def on_init(self): be = backend.Config(self.app) self.hosts = be.read() self.hostname = be.gethostname()
def on_submit(self, event, params, vars=None): # Edição de um cliente if params[0] == 'dlgEdit': if vars.getvalue('action', '') == 'OK': ip = vars.getvalue('ip', '') mac = vars.getvalue('mac', '') app = vars.getvalue('app', '') ret = backend.Config(self.app).saveMachine(ip, mac, app) #if not ret: ERROR self._editing = None # Adicionar uma faixa DHCP elif params[0] == 'addFaixa': if vars.getvalue('action', '') == 'OK': ip_inicial = vars.getvalue('inicial', '') ip_final = vars.getvalue('final', '') apps = vars.getvalue('apps') retRange, retAPPS = backend.Config(self.app).setRangeLTSP( ip_inicial, ip_final, apps) if not retRange: if ip_inicial.strip() <> '' and ip_final.strip() <> '': self._msgError3 = 'Erro ao adicionar a faixa de IPs. '+\ 'A faixa adicionada não está na mesma '+\ 'faixa da rede do servidor.' self._editing = None self._tab = 1 # Configurar a interface do Servidor elif params[0] == "interface": if vars.getvalue('action', '') == 'cadastrar_servidor': iface = vars.getvalue('iface', 'none') try: ip = ni.ifaddresses(iface)[2][0]['addr'] except: ip = '' try: masc = ni.ifaddresses(iface)[2][0]['netmask'] except: masc = '' ret = backend.Config(self.app).setServer(ip, masc, iface) if not ret: self._msgError = 'A nova interface escolhida não está configurada.'+\ 'Vá primeiro ao módulo "Redes" e defina um IP e uma máscara.' self._tab = 0 # Adicionar um cliente elif params[0] == "clientes": self._tab = 1 if vars.getvalue('action', '') == 'addCliente': mac = vars.getvalue('clientMAC', 'none') ip = vars.getvalue('clientIP', 'none') app = vars.getvalue('clientAPP', 'none') ret = backend.Config(self.app).saveMachine(ip, mac, app) if not ret: self._msgError2 = 'ERRO: ou o MAC é inválido ou o IP não está na mesma rede de seu servidor.' return elif params[0] == "clientImage": if vars.getvalue('action', '') == 'criar_imagem': mirror = vars.getvalue('mirror', '') backend.Config(self.app).ltspBuildClient(mirror=mirror) self._tab = 2 elif params[0] == 'info': self._tab = 3 if vars.getvalue('action', '') == 'getInfoLTSP': self._infoLTSP = True
def on_init(self): be = backend.Config(self.app) self.ifaces = be.getInterfaces() self.clientes = be.getClients()
def on_dlg_submit(self, event, params, vars=None): if params[0] == 'dlgEditConn': v = vars.getvalue('value', '') if vars.getvalue('action', '') == 'OK': name = vars.getvalue('name', '') f = open('/etc/netctl/' + name, 'w') f.write("# automatically generated by arkOS Genesis\n") devclass = vars.getvalue('devclass', '') if devclass: f.write('Connection=\'' + devclass + '\'\n') description = vars.getvalue('description', '') if description: f.write('Description=\'' + description + '\'\n') interface = vars.getvalue('interface', '') if interface: f.write('Interface=\'' + interface + '\'\n') security = vars.getvalue('security', '') if security: f.write('Security=\'' + security + '\'\n') essid = vars.getvalue('essid', '') if essid and devclass == 'wireless': f.write('ESSID=\"' + essid + '\"\n') addressing = vars.getvalue('addressing', '') if addressing: f.write('IP=\'' + addressing + '\'\n') address = vars.getvalue('address', '') if address and addressing == 'static': f.write('Address=(\'' + address + '\')\n') gateway = vars.getvalue('gateway', '') if gateway and addressing == 'static': f.write('Gateway=\'' + gateway + '\'\n') key = vars.getvalue('key', '') if key and devclass == 'wireless': f.write('Key=\"' + key + '\"\n') f.close() self.conn_config.rescan() self._editing_conn = None if params[0] == 'dlgInfo': self._info = None if params[0] == 'dlgConnInfo': self._conninfo = None if params[0] == 'dlgEdit': v = vars.getvalue('value', '') if vars.getvalue('action', '') == 'OK': h = backend.Host() h.ip = vars.getvalue('ip', 'none') h.name = vars.getvalue('name', 'none') h.aliases = vars.getvalue('aliases', '') try: self.hosts[self._editing] = h except: self.hosts.append(h) backend.Config(self.app).save(self.hosts) self._editing = None if params[0] == 'dlgSelf': v = vars.getvalue('value', '') if vars.getvalue('action', '') == 'OK': backend.Config(self.app).sethostname(v) self._editing_self = None if params[0] == 'dlgEditDNS': if vars.getvalue('action', '') == 'OK': try: i = self.dns_config.nameservers[self._editing_ns] except: i = Nameserver() self.dns_config.nameservers.append(i) i.cls = vars.getvalue('cls', 'nameserver') i.address = vars.getvalue('address', '127.0.0.1') self.dns_config.save() self._editing_ns = None
def on_init(self): be = backend.Config(self.app) self.zones = be.read()
def on_ll_click(self, event, params, vars=None): if params[0] == 'intinfo': self._tab = 0 self._info = params[1] if params[0] == 'conninfo': self._tab = 0 self._conninfo = params[1] if params[0] == 'ifup': self._tab = 0 self.net_config.up(self.net_config.interfaces[params[1]]) self.net_config.rescan() if params[0] == 'ifdown': self._tab = 0 self.net_config.down(self.net_config.interfaces[params[1]]) self.net_config.rescan() if params[0] == 'ifenable': self._tab = 0 self.net_config.enable(self.net_config.interfaces[params[1]]) self.net_config.rescan() if params[0] == 'ifdisable': self._tab = 0 self.net_config.disable(self.net_config.interfaces[params[1]]) self.net_config.rescan() if params[0] == 'connup': self._tab = 0 self.conn_config.connup(self.conn_config.connections[params[1]]) if params[0] == 'conndown': self._tab = 0 self.conn_config.conndown(self.conn_config.connections[params[1]]) if params[0] == 'connenable': self._tab = 0 self.conn_config.connenable( self.conn_config.connections[params[1]]) self.conn_config.rescan() if params[0] == 'conndisable': self._tab = 0 self.conn_config.conndisable( self.conn_config.connections[params[1]]) self.conn_config.rescan() if params[0] == 'addconn': self._tab = 0 self._editing_conn = True if params[0] == 'delconn': self._tab = 0 shell('rm /etc/netctl/' + params[1]) self.conn_config.rescan() if params[0] == 'editconn': self._tab = 0 self._editing_conn = self.conn_config.connections[params[1]] if params[0] == 'refresh': self._tab = 0 self.net_config.rescan() self.conn_config.rescan() if params[0] == 'add': self._tab = 1 self._editing = len(self.hosts) if params[0] == 'edit': self._tab = 1 self._editing = int(params[1]) if params[0] == 'del': self._tab = 1 self.hosts.pop(int(params[1])) backend.Config(self.app).save(self.hosts) if params[0] == 'hostname': self._tab = 1 self._editing_self = True if params[0] == 'editns': self._tab = 2 self._editing_ns = int(params[1]) if params[0] == 'delns': self._tab = 2 self.dns_config.nameservers.pop(int(params[1])) self.dns_config.save() if params[0] == 'addns': self._tab = 2 self.dns_config.nameservers.append(Nameserver()) self._editing_ns = len(self.dns_config.nameservers) - 1
def updateViewInet(self, iface): self._viewInetCfg = iface self._viewInetValues = backend.Config(self.app).getConfigSection( self._viewInetCfg)
def on_init(self): be = backend.Config(self.app) self.hosts = []
def on_init(self): backend.Config(self.app).ConfigureIfaces()
def on_init(self): be = backend.Config(self.app)