def read_config(self, path):
     """
     Realiza a leitura do JSON e adiciona a variavel config.
     :param path: Local do json de config.
     :return: None
     """
     if Utils.file_exists(path):
         with open(path) as opf:
             try:
                 self.cfg = json.load(opf)
             except ValueError:
                 print "UNKNOWN - Impossivel ler arquivo de configuracao."
                 exit(3)
     else:
         print "UNKNOWN - Impossivel encontrar o arquivo de configuracao."
 def read_partial_file(self):
     if Utils.file_exists(Utils.fullpath('check_alertlog.tmp')):
         with open(Utils.fullpath('check_alertlog.tmp'), 'r') as f:
             try:
                 f.seek(0)
                 file_content = f.readline()
                 self.last_position = int(file_content)
             except ValueError:
                 print "UNKNOWN - Impossivel ler logfile."
                 exit(3)
     else:
         with open(Utils.fullpath('check_alertlog.tmp'), 'a') as f:
             try:
                 f.write('0')
                 self.last_position = 0
             except:
                 print "UNKNOWN - Erro ao escrever check_alertlog.tmp. Verifique as permissoes."
                 exit(3)
 def read_log(self):
     """
     Realiza a leitura das novas linhas do log
     Procura pelos erros e faz a contagem de linhas
     para atualizar a ultima posicao lida do log.
     Caso ja tenha lido tudo faz sua saida padrao.
     :return:
     """
     if Utils.file_exists(self.logfile):
         with open(self.logfile) as f:
             for _ in xrange(int(self.last_position)):
                 next(f)
             for line in f:
                 self.find_errors(line)
                 self.lines_counted += 1
     else:
         self.clear_log_position()
         print "UNKNOWN - Logfile nao encontrado"
         exit(3)
     if self.lines_counted > 0:
         self.update_log_position(self.lines_counted)
     else:
         self.exit_status()