コード例 #1
0
    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
コード例 #2
0
 def on_init(self):
     be = backend.Config(self.app)
     self._allSubnets = be.getSubnets()
コード例 #3
0
    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
コード例 #4
0
 def on_init(self):
     be = backend.Config(self.app)
     self.hosts = be.read()
     self.hostname = be.gethostname()
コード例 #5
0
    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
コード例 #6
0
 def on_init(self):
     be = backend.Config(self.app)
     self.ifaces = be.getInterfaces()
     self.clientes = be.getClients()
コード例 #7
0
ファイル: main.py プロジェクト: ajvb/genesis
    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
コード例 #8
0
 def on_init(self):
     be = backend.Config(self.app)
     self.zones = be.read()
コード例 #9
0
ファイル: main.py プロジェクト: ajvb/genesis
 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
コード例 #10
0
ファイル: main.py プロジェクト: jiningeast/netcontrol
 def updateViewInet(self, iface):
     self._viewInetCfg = iface
     self._viewInetValues = backend.Config(self.app).getConfigSection(
         self._viewInetCfg)
コード例 #11
0
ファイル: main.py プロジェクト: jiningeast/netcontrol
 def on_init(self):
     be = backend.Config(self.app)
     self.hosts = []
コード例 #12
0
ファイル: main.py プロジェクト: jiningeast/netcontrol
 def on_init(self):
     backend.Config(self.app).ConfigureIfaces()
コード例 #13
0
ファイル: main.py プロジェクト: jiningeast/netcontrol
 def on_init(self):
     be = backend.Config(self.app)