Ejemplo n.º 1
0
def do_acc(pid, job):
    parsed = parse_pid(pid)
    lid = parsed[LID]
    ts_label = parsed[TS_LABEL]
    roots = get_data_roots(session, ts_label) # get raw data roots
    fileset = parsed_pid2fileset(parsed, roots)
    fileset[LID] = lid
    session.expire_all() # don't be stale!
    acc = Accession(session,ts_label)#,fast=True)
    # FIXME fast=True disables checksumming
    client.update(pid,ttl=3600) # allow 1hr for accession
    ret = acc.add_fileset(fileset)
    if ret=='ADDED':
        schedule_products(pid, client)
        session.commit()
        client.wakeup()
    elif ret=='FAILED':
        raise Exception('accession failed')
if len(sys.argv) < 2:
    print "no time series label specified"
    sys.exit(-1)
else:
    LABEL = sys.argv[1]

# clean up dashboard database
ts = session.query(TimeSeries).filter(TimeSeries.label == LABEL).first()
if ts is not None:
    session.delete(ts)

for b in session.query(Bin).filter(Bin.ts_label == LABEL):
    session.delete(b)

session.commit()

# now clean up workflow database
from dashboard_conf import DASHBOARD_BASE_URL, WORKFLOW_DATABASE_URL
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session

from oii.workflow import orm as worm

dbengine = create_engine(WORKFLOW_DATABASE_URL)
worm.Base.metadata.create_all(dbengine)
session = scoped_session(sessionmaker(bind=dbengine))()

for p in session.query(worm.Product).filter(worm.Product.pid.like(DASHBOARD_BASE_URL + LABEL + "/%")):
    session.delete(p)
Ejemplo n.º 3
0
if len(sys.argv) < 2:
   print 'no time series label specified'
   sys.exit(-1)
else:
   LABEL = sys.argv[1]

# clean up dashboard database
ts = session.query(TimeSeries).filter(TimeSeries.label==LABEL).first()
if ts is not None:
    session.delete(ts)

for b in session.query(Bin).filter(Bin.ts_label==LABEL):
    session.delete(b)

session.commit()

# now clean up workflow database
from dashboard_conf import DASHBOARD_BASE_URL, WORKFLOW_DATABASE_URL
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session

from oii.workflow import orm as worm

dbengine = create_engine(WORKFLOW_DATABASE_URL)
worm.Base.metadata.create_all(dbengine)
session = scoped_session(sessionmaker(bind=dbengine))()

for p in session.query(worm.Product).filter(worm.Product.pid.like(DASHBOARD_BASE_URL+LABEL+'/%')):
    session.delete(p)