Guest
Public paste!

Untitled

By: a guest | Mar 17th, 2010 | Syntax: Python | Size: 5.09 KB | Hits: 37 | Expires: Never
This paste has a previous version, view the difference. Copy text to clipboard
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #Programa para TCC em Análise e Desenvolvimento de Software - Faculdade SENAC
  4. #Feito por André Gondim - andregondim@ubuntu.com
  5.  
  6. from os import system
  7. import cx_Oracle
  8. import os
  9. from shutil import copyfile
  10.  
  11. class Configuracao(object):
  12.     #statics
  13.     pathNFE = '/uni5nfe/nfe_configuracoes.xml'
  14.     pathNFEbkp = '/uni5nfe/nfe_configuracoes.xml.bkp'
  15.     nfeIntra = '/uni5nfe/portal_uni5nfe/includes/config/conf_portal.xml'
  16.     nfeIntrabkp = '/uni5nfe/portal_uni5nfe/includes/config/conf_portal.xml.bkp'
  17.     pathWAR = '/unitnfe5/programas/tomcat/webapps/'
  18.     pathWARroot = '/root/uni5nfe.war'
  19.     linha0 = 'Fazendo a instalaçãoo do sistema de NF-e em Ubuntu e Oracle'
  20.     linha1 ='Uni5'
  21.     linha2 = 'Para suporte (51) 2111 1111 ou envie e-mail para suportenfe@uni5.com'
  22.     numero = 75
  23.  
  24.     # constructor
  25.     def __init__(self,ipbanco = '', porta = '', sid = '',  user = '', password = '', iplocal = '', usuario = '', senha = ''):
  26.         '''
  27.        Método para inicializar variáveis
  28.        '''
  29.         self.ipbanco =      ipbanco
  30.         self.porta =        porta
  31.         self.sid=           sid
  32.         self.user =         user
  33.         self.password =     password
  34.         self.iplocal =      iplocal
  35.         self.usuario =      usuario
  36.         self.senha =        senha
  37.  
  38.     # functions
  39.     def ask(self, msg):
  40.         '''
  41.        Método para verificar valor nulo ou em branco
  42.        '''
  43.         prompt=''
  44.         while prompt == '':
  45.             try:
  46.                 prompt = raw_input(msg)
  47.                 prompt=prompt.replace(' ','')
  48.             except ValueError:
  49.                 print 'Não pode ser branco/nulo'
  50.         return prompt
  51.  
  52.     def do_update(self,strold, strnew, filename ):
  53.         """
  54.        Função para efetuar substituições em arquivos.
  55.        """
  56.         system('sed -i "s/%s/%s/g" %s' % (strold, strnew, filename))
  57.  
  58.  
  59.     def inicio(self):
  60.         '''
  61.        Método para mostrar entrada
  62.        '''
  63.         system('clear')
  64.         print '#'*numero
  65.         print '#'+linha0.center(numero)+'#'
  66.         print '#'+linha1.center(numero)+'#'
  67.         print '#'+linha2.center(numero)+'#'
  68.         print '#'*numero
  69.         print ''
  70.         print 'Para iniciar a configuração serão lhe pedidos alguns dados'
  71.         print ''
  72.  
  73.     def menu(self):
  74.         '''
  75.            Método que pega as informações para instalação
  76.        '''  
  77.         ipbanco =  ask('IP onde o Oracle está instalado: ')
  78.         porta =    ask('Qual a porta do banco, a padrão é 1521: ')
  79.         sid =      ask('Qual o sid do banco, a padrão é xe: ')
  80.         user =     ask('Qual o usuário para acesso ao banco: ')
  81.         password = ask('Qual a senha para %s: ' % user)
  82.         iplocal =  ask('Qual o ip desta máquina: ')
  83.  
  84.         print 'Confirmando'
  85.         copyfile(pathNFEbkp,pathNFE)
  86.         copyfile(pathIntrabkp,pathIntra)
  87.         print 'O ip é %s, a porta %s, o sid %s, o usuário %s, a senha %s e o ip local %s' % (ipbanco,porta,sid,user,password,iplocal)
  88.         #db = cx_Oracle.connect("%s/%s@%s:%s/%s" % (user,password,ip,porta,sid) )
  89.         #cursor = db.cursor()
  90.  
  91.     def altera(self):
  92.         """
  93.            Método que fará a alteração para a aplicação e o portal
  94.        """
  95.         ### mudar o ip do banco
  96.         do_update('ipbanco',ipbanco,pathNFE)
  97.         do_update('ipbanco',ipbanco,pathIntra)
  98.  
  99.         ### mudar a porta
  100.         do_update('porta',porta,pathNFE)
  101.         do_update('porta',porta,pathNFE)
  102.  
  103.         ### mudar o sid
  104.         do_update('sid',sid,pathNFE)
  105.         do_update('sid',sid,pathNFE)
  106.  
  107.         ### mudar usuário
  108.         do_update('user',user,pathNFE)
  109.         do_update('user',user,pathNFE)
  110.  
  111.         ### mudar senha
  112.         do_update('password',password,pathNFE)
  113.         do_update('password',password,pathNFE)
  114.  
  115.         ### mudar o ip local na Intra
  116.         do_update('iplocal',iplocal,pathIntra)
  117.  
  118.     def sql(self):
  119.         '''
  120.            Método de conexão ao banco e alteração
  121.        '''                    
  122.         arquivo = open('/root/SQL.txt', 'r') ## open the file with sql to update the database
  123.         sql = arquivo.read() ## read all the sql needs
  124.         #    print ('%s/%s@%s:%s/%s' % (user,password,ipbanco,porta,sid) )
  125.         db = cx_Oracle.connect('%s/%s@%s:%s/%s' % (user,password,ipbanco,porta,sid) )
  126.         for n in sql.split(';'):
  127.             try:
  128.                 print n
  129.                 cursor = db.cursor() ## open cursor
  130.                 cursor.execute(n)
  131.                 cursor.close() ## close cursor
  132.        
  133.        # except ( Exception, e):
  134.             except Exception,e:
  135.                 print str( e)
  136.         db.close() ## close connection
  137.         copyfile(pathWARroot,pathWAR)
  138.  
  139.     def certificado(self,resposta):
  140.         '''
  141.        Caso queria mudar o certificado entrará em modo web, caso contrário fica em serviço
  142.        '''
  143.         do_update(web,service,pathNFE) if resposta == ('s' or 'S') else do_update(service,web,pathNFE)
  144.  
  145.  
  146.  
  147. #if __name__ == '__main__':
  148. #    inicio()
  149. #    menu()
  150. #    altera()
  151. #    sql()