Changeset 5040


Ignore:
Timestamp:
Feb 18, 2008, 4:44:31 PM (16 years ago)
Author:
ole
Message:

Work and data audit. Added a bunch of license files.

Files:
6 added
4 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/documentation/user_manual/demos/cairns/cairns.lic

    r5037 r5040  
    99    <filename>cairns.asc</filename>
    1010    <checksum>88429353</checksum>
    11     <publishable></publishable>
     11    <publishable>Yes</publishable>
    1212    <accountable>Jane Sexton</accountable>
    1313    <source>Australian bathymetry and topography grid, June 2005</source>
     
    1919    <filename>cairns.prj</filename>
    2020    <checksum>-2029103677</checksum>
    21     <publishable></publishable>
     21    <publishable>Yes</publishable>
    2222    <accountable>Jane Sexton</accountable>
    2323    <source>Australian bathymetry and topography grid, June 2005</source>
     
    2525    <IP_info>http://www.ga.gov.au/meta/ANZCW0703008022.html</IP_info>
    2626  </datafile> 
     27 
     28  <datafile>
     29    <filename>cairns.csv</filename>
     30    <checksum>-552986890</checksum>
     31    <publishable>No</publishable>
     32    <accountable>Jane Sexton</accountable>
     33    <source>XX</source>
     34    <IP_owner>Geoscience Australia</IP_owner>
     35    <IP_info>XX</IP_info>
     36  </datafile>   
    2737
    2838</ga_license_file>
  • anuga_core/source/anuga/utilities/data_audit.py

    r5039 r5040  
    1717class Invalid(Exception): pass
    1818class WrongTags(Exception): pass
     19class Empty(Exception): pass
    1920
    2021audit_exceptions = (NotPublishable,
     
    2223                    CRCMismatch,
    2324                    Invalid,
    24                     WrongTags)
     25                    WrongTags,
     26                    Empty)
    2527
    2628
     
    5860    """
    5961
    60     # Print header
    61     dirwidth = 72
    62 
    6362    # Identify data files
     63    oldpath = None
    6464    all_files = 0
    6565    ok_files = 0
     
    7070                                                directories_to_ignore,
    7171                                                files_to_ignore):
    72        
     72
     73
     74        if oldpath != dirpath:
     75            dir_change = True
     76            oldpath = dirpath
     77        else:
     78            dir_change = False
     79
    7380        all_files += 1
    7481       
     
    105112                    status += fid.read()
    106113                    fid.close()
    107                 else:   
    108                     status += str(doc)
    109 
    110 
     114                else:
     115                    pass
     116                    #if verbose is True:
     117                    #    status += str(doc)
     118
     119
     120
     121       # Only print status if there is a problem (no news is good news)
     122        if dir_change is True:
     123            print
     124            print '------------------------------------'
     125            msg = 'Files without licensing info in dir:'
     126            print msg, dirpath
     127            print '------------------------------------'
     128               
    111129
    112130        if status == 'OK':
    113131            ok_files += 1
    114132        else:
    115             # Only print status if there is a problem (no news is good news)
    116             if first_time is True:
    117                 # Print header
    118                 print '---------------------------------------------'
    119                 msg = 'Files that need to be assessed for IP issuses'
    120                 print msg.ljust(dirwidth), 'Status'
    121                 print '---------------------------------------------'
    122                 first_time = False
    123 
     133            #print dir_change, dirpath, filename + ' (Checksum=%s): '\
    124134            print filename + ' (Checksum=%s): '\
    125135                  %str(compute_checksum(join(dirpath, filename))),\
     
    129139    if verbose is True:
    130140        print
    131         print 'Audit result for %s:' %dirpath
     141        print '---------------------'       
     142        print 'Audit result for dir: %s:' %directory
     143        print '---------------------'               
    132144        print 'Number of files audited:  %d' %(all_files)
    133145        print 'Number of files verified: %d' %(ok_files)       
    134 
     146        print
    135147
    136148    # Return result       
     
    188200
    189201    * Datafile tags are there and match the one specified
    190     * Fields are non empty
     202    * Fields are non empty (except IP_info which can be left blank)
    191203    * Datafile exists
    192204    * Checksum is correct
     
    257269        if data['filename'] == data_filename:
    258270            found = True
     271            break
     272           
    259273    if not found:
    260274        msg = 'Specified filename to verify %s ' %data_filename
     
    263277           
    264278       
    265     # Check contents
    266     for data in datafile:
    267         if verbose: print
    268 
    269         # Filename
    270         if data['filename'] == '':
    271             msg = 'Missing filename'
    272             raise FilenameMismatch, msg           
    273         else:
    274             filename = join(dirpath, data['filename'])
    275             if verbose: print 'Filename: "%s"' %filename
    276             try:
    277                 fid = open(filename, 'r')
    278             except:
    279                 msg = 'Specified filename %s could not be opened'\
    280                       %filename
    281                 raise FilenameMismatch, msg
    282 
    283         # CRC
    284         reported_crc = data['checksum']
    285         if verbose: print 'Checksum: "%s"' %reported_crc
    286        
    287         file_crc = str(compute_checksum(filename))
    288         if reported_crc != file_crc:
    289             msg = 'Bad checksum (CRC).\n'
    290             msg += '  The CRC reported in license file "%s" is "%s"\n'\
    291                    %(license_filename, reported_crc)
    292             msg += '  The CRC computed from file "%s" is "%s"'\
    293                    %(filename, file_crc)
    294             raise CRCMismatch, msg
    295                
    296         # Accountable
    297         accountable = data['accountable']
    298         if verbose: print 'Accountable: "%s"' %accountable
    299         if accountable == '':
    300             msg = 'No accountable person specified'
    301             raise Exception, msg
    302 
    303         # Source
    304         source = data['source']
    305         if verbose: print 'Source: "%s"' %source
    306         if source == '':
    307             msg = 'No source specified'
    308             raise Exception, msg               
    309 
    310         # IP owner
    311         ip_owner = data['IP_owner']
    312         if verbose: print 'IP owner: "%s"' %ip_owner
    313         if ip_owner == '':
    314             msg = 'No IP owner specified'
    315             raise Exception, msg                               
    316                
    317         # IP info
    318         ip_info = data['IP_info']
    319         if verbose: print 'IP info: "%s"' %ip_info
    320         if ip_info == '':
    321             msg = 'No IP info specified'
    322             raise Exception, msg                                               
    323 
    324         # Publishable
    325         publishable = data['publishable']
    326         if verbose: print 'Publishable: "%s"' %publishable
    327         if publishable == '':
    328             msg = 'No publishable value specified'
    329             raise NotPublishable, msg
    330        
    331         if publishable.upper() != 'YES':
    332             msg = 'Data file %s is not flagged as publishable'\
    333                   %fid.name
    334             raise NotPublishable, msg
     279    # Check contents for selected data_filename
     280    #for data in datafile:
     281    #    if verbose: print
     282
     283    # Filename
     284    if data['filename'] == '':
     285        msg = 'Missing filename'
     286        raise FilenameMismatch, msg           
     287    else:
     288        filename = join(dirpath, data['filename'])
     289        if verbose: print 'Filename: "%s"' %filename
     290        try:
     291            fid = open(filename, 'r')
     292        except:
     293            msg = 'Specified filename %s could not be opened'\
     294                  %filename
     295            raise FilenameMismatch, msg
     296
     297    # CRC
     298    reported_crc = data['checksum']
     299    if verbose: print 'Checksum: "%s"' %reported_crc
     300   
     301    file_crc = str(compute_checksum(filename))
     302    if reported_crc != file_crc:
     303        msg = 'Bad checksum (CRC).\n'
     304        msg += '  The CRC reported in license file "%s" is "%s"\n'\
     305               %(license_filename, reported_crc)
     306        msg += '  The CRC computed from file "%s" is "%s"'\
     307               %(filename, file_crc)
     308        raise CRCMismatch, msg
     309           
     310    # Accountable
     311    accountable = data['accountable']
     312    if verbose: print 'Accountable: "%s"' %accountable
     313    if accountable == '':
     314        msg = 'No accountable person specified'
     315        raise Empty, msg
     316
     317    # Source
     318    source = data['source']
     319    if verbose: print 'Source: "%s"' %source
     320    if source == '':
     321        msg = 'No source specified'
     322        raise Empty, msg               
     323
     324    # IP owner
     325    ip_owner = data['IP_owner']
     326    if verbose: print 'IP owner: "%s"' %ip_owner
     327    if ip_owner == '':
     328        msg = 'No IP owner specified'
     329        raise Empty, msg                               
     330           
     331    # IP info
     332    ip_info = data['IP_info']
     333    if verbose: print 'IP info: "%s"' %ip_info
     334    #if ip_info == '':
     335    #    msg = 'No IP info specified'
     336    #    raise Empty, msg                                               
     337
     338    # Publishable
     339    publishable = data['publishable']
     340    if verbose: print 'Publishable: "%s"' %publishable
     341    if publishable == '':
     342        msg = 'No publishable value specified'
     343        raise NotPublishable, msg
     344   
     345    if publishable.upper() != 'YES':
     346        msg = 'Data file %s is not flagged as publishable'\
     347              %fid.name
     348        raise NotPublishable, msg
    335349
    336350
  • anuga_core/source/anuga/utilities/data_audit_wrapper.py

    r5027 r5040  
    3737# Ignore directories
    3838directories_to_ignore = ['.svn', 'misc', '.metadata']
     39directories_to_ignore += ['old_pyvolution_documentation']
    3940
    4041
  • audit_all_data.py

    r5027 r5040  
    44
    55# Roughly the same as what is being released
    6 dirs_to_distribute = [join('anuga_core', 'source', 'anuga'),
    7                       'anuga_validation',
    8                       join('anuga_core', 'documentation', 'user_manual')]
     6#dirs_to_distribute = [join('anuga_core', 'source', 'anuga'),
     7#                      'anuga_validation',
     8#                      join('anuga_core', 'documentation', 'user_manual')]
     9
     10#dirs_to_distribute = ['anuga_validation']
     11dirs_to_distribute = [join('anuga_core', 'documentation', 'user_manual')]
     12#dirs_to_distribute = [join('anuga_core', 'source', 'anuga')]
     13
    914
    1015
    1116for dir in dirs_to_distribute:
    1217    if not IP_verified(dir, verbose=True):
    13         print 'Not all files in %s have been verified.' %dir
     18        pass
     19        #print 'Not all files in %s have been verified.' %dir
    1420
    1521
Note: See TracChangeset for help on using the changeset viewer.