Package backend :: Package server :: Package importlib :: Module backend_checker
[hide private]
[frames] | no frames]

Source Code for Module backend.server.importlib.backend_checker

 1  #!/usr/bin/python2 
 2   
 3  import sys 
 4  from spacewalk.server import rhnSQL 
 5  from spacewalk.server.importlib import backendOracle 
 6  from spacewalk.server.importlib.backendLib import DBstring 
 7   
 8  exitval = 0 
 9   
10  rhnSQL.initDB() 
11  q = rhnSQL.prepare("""select data_length 
12                          from user_tab_columns 
13                         where upper(table_name) = upper(:tname) 
14                           and upper(column_name) = upper(:cname)""") 
15   
16  backend = backendOracle.PostgresqlBackend() 
17   
18  for tn, tc in backend.tables.items(): 
19      for cn, cv in tc.getFields().items(): 
20          if isinstance(cv, DBstring): 
21              q.execute(tname=tn, cname=cn) 
22              row = q.fetchone_dict() 
23              if not row or row['data_length'] != cv.limit: 
24                  print(("ERROR: database column %s.%s is %s chars long " 
25                         + "but defined as %s chars in backendOracle.py") % ( 
26                      tn, cn, row['data_length'], cv.limit)) 
27                  exitval = 1 
28              else: 
29                  print("%s.%s = %d" % (tn, cn, row['data_length'])) 
30   
31  sys.exit(exitval) 
32