1 |
eulisse |
1.1 |
#!/usr/bin/env python
|
2 |
|
|
|
3 |
|
|
from getopt import getopt
|
4 |
|
|
from sys import argv
|
5 |
|
|
from os.path import exists
|
6 |
|
|
from sqlobject import *
|
7 |
|
|
conn = SQLiteConnection("prodrequest.db")
|
8 |
|
|
from Models import Payload, Workflow, WorkflowEntry
|
9 |
|
|
Payload._connection = conn
|
10 |
|
|
Workflow._connection = conn
|
11 |
|
|
WorkflowEntry._connection = conn
|
12 |
|
|
|
13 |
|
|
print argv
|
14 |
|
|
optlist, args = getopt (argv[1:], "w", ["workflow-name=","tag="])
|
15 |
|
|
|
16 |
|
|
options={}
|
17 |
|
|
print optlist
|
18 |
|
|
|
19 |
|
|
for key, value in optlist:
|
20 |
|
|
options[key] = value
|
21 |
|
|
|
22 |
|
|
if not options.has_key ("--workflow-name"):
|
23 |
|
|
print "Please specify the workflow name."
|
24 |
|
|
exit
|
25 |
|
|
|
26 |
|
|
if not options.has_key ("--tag"):
|
27 |
|
|
print "Please specify the tag to be used for this import"
|
28 |
|
|
exit
|
29 |
|
|
|
30 |
|
|
workflowName=options["--workflow-name"]
|
31 |
|
|
tag=options["--tag"]
|
32 |
|
|
workflowSelect = Workflow.select (Workflow.q.name==workflowName)
|
33 |
|
|
if not workflowSelect.count ():
|
34 |
|
|
workflowID = Workflow (name=workflowName).id
|
35 |
|
|
else:
|
36 |
|
|
workflowID = workflowSelect[0].id
|
37 |
|
|
|
38 |
|
|
for cfgfile in args:
|
39 |
|
|
if not exists (cfgfile):
|
40 |
|
|
print cfgfile + " not found."
|
41 |
|
|
pass
|
42 |
|
|
|
43 |
|
|
cfg = file (cfgfile).read ()
|
44 |
|
|
cfgname = cfgfile.rsplit ("/", 1)[1] + " - " + tag
|
45 |
|
|
payloadSelect = Payload.select (Payload.q.name==cfgname)
|
46 |
|
|
if payloadSelect.count ():
|
47 |
|
|
payloadID = payloadSelect[0].id
|
48 |
|
|
else:
|
49 |
|
|
payloadID = Payload (name=cfgname,
|
50 |
|
|
parameterset=cfg,
|
51 |
|
|
input_dataset="input dataset",
|
52 |
|
|
output_dataset="output_dataset").id
|
53 |
|
|
|
54 |
|
|
entrySelect = WorkflowEntry.select (WorkflowEntry.q.payload_id==payloadID)
|
55 |
|
|
|
56 |
|
|
if entrySelect.count ():
|
57 |
|
|
print "Already in there, skipping"
|
58 |
|
|
continue
|
59 |
|
|
|
60 |
|
|
WorkflowEntry (name=cfgname,
|
61 |
|
|
workflow_id=workflowID,
|
62 |
|
|
payload_id=payloadID,
|
63 |
|
|
payloadprev_id=0,
|
64 |
|
|
payloadparent_id=0,
|
65 |
|
|
status=0)
|