1 from __future__
import absolute_import
2 import json
,glob
,logging
8 logging
.basicConfig(level
=logging
.INFO
, format
='%(asctime)s - %(levelname)s - %(message)s')
10 root
=osp
.abspath('fdds/simulations')
11 files
= glob
.glob(osp
.join(root
,'*/catalog.json'))
12 catalog_path
=osp
.join(root
,'catalog.json')
13 lock_path
=catalog_path
+ '.lock'
18 f_json
= json
.load(open(f
))
20 logging
.error('loading file %s failed, ignoring' % f
)
21 catalog
.update(f_json
)
23 # add blank fields if not present
25 catalog
[i
]['processed_utc']=catalog
[i
].get('processed_utc',None)
26 catalog
[i
]['run_utc']=catalog
[i
].get('run_utc',None)
27 catalog
[i
]['kml_url']=catalog
[i
].get('kml_url',None)
28 catalog
[i
]['kml_size']=catalog
[i
].get('kml_size',None)
29 catalog
[i
]['zip_url']=catalog
[i
].get('zip_url',None)
30 catalog
[i
]['zip_size']=catalog
[i
].get('zip_size',None)
31 catalog
[i
]['job_id']=i
33 catalog_sorted
=collections
.OrderedDict(sorted(list(catalog
.items()), reverse
=True))
37 json
.dump(catalog_sorted
, open(catalog_path
, 'w'), indent
=1, separators
=(',',':'))
40 logging
.info('Created catalog at %s',catalog_path
)