Skip to content
Snippets Groups Projects
Commit 60f70c34 authored by Alex Diebold's avatar Alex Diebold
Browse files

fixed _create(). Now properly updates inst/site/filetype without breaking the...

fixed _create(). Now properly updates inst/site/filetype without breaking the relationships with files
parent 502d00bc
No related branches found
No related tags found
No related merge requests found
......@@ -421,21 +421,21 @@ def _create(args):
docs = yaml.load(stream)
for s in docs['instruments'].keys():
curr_site = Site(name = s)
site_q = session.query(Site).filter(Site.name == curr_site.name).all()
site_q = session.query(Site).filter(Site.name == s).all()
if len(site_q) > 0:
session.delete(site_q[0])
session.commit()
curr_site = site_q[0]
else:
curr_site = Site(name = s)
session.add(curr_site)
session.commit()
for i in docs['instruments'][s].keys():
if i != 'display_name':
curr_inst = Instrument(name=i, site=curr_site)
inst_q = session.query(Instrument).filter(Instrument.name == curr_inst.name)
inst_q = inst_q.filter(Instrument.site.has(name = curr_inst.site.name)).all()
inst_q = session.query(Instrument).filter(Instrument.name == i)
inst_q = inst_q.filter(Instrument.site.has(name = curr_site.name)).all()
if len(inst_q) > 0:
session.delete(inst_q[0])
session.commit()
curr_inst = inst_q[0]
else:
curr_inst = Instrument(name=i, site=curr_site)
session.add(curr_inst)
session.commit()
for f in docs['instruments'][s][i]['filetypes']:
......@@ -446,12 +446,18 @@ def _create(args):
level = d['level']
else:
level = None
curr_filetype = FileType(name=f, glob_pattern=d['glob_pattern'], format_pattern=d['format_pattern'], level=level, period=d['period'])
filetype_q = session.query(FileType).filter(FileType.name == curr_filetype.name).all()
filetype_q = session.query(FileType).filter(FileType.name == f).all()
if len(filetype_q) > 0:
session.delete(filetype_q[0])
curr_filetype = filetype_q[0]
curr_filetype.glob_pattern = d['glob_pattern']
curr_filetype.format_pattern = d['format_pattern']
curr_filetype.level = level
curr_filetype.period = d['period']
session.add(curr_filetype)
session.commit()
curr_filetype.add_instrument(curr_inst)
else:
curr_filetype = FileType(name=f, glob_pattern=d['glob_pattern'], format_pattern=d['format_pattern'], level=level, period=d['period'])
curr_filetype.add_instrument(curr_inst)
#remove database if process failed
except:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment