| author | Sandro Knauß <knauss@netzguerilla.net> |
| Mon, 13 Feb 2012 19:52:54 +0100 | |
| branch | devel |
| changeset 152 | 14c99c89edf4 |
| parent 142 | 7d0c1fa97123 |
| child 156 | a4ad521b127b |
| permissions | -rw-r--r-- |
| 135 | 1 |
from collections import MutableMapping |
2 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
3 |
import schema |
| 135 | 4 |
from .dbdefer import dbdefer |
|
152
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
142
diff
changeset
|
5 |
from .offer import extendProvider |
| 135 | 6 |
|
7 |
class Status: |
|
8 |
'''status for one recipient''' |
|
9 |
todo = 1 |
|
10 |
good = 2 |
|
11 |
error = 3 |
|
|
142
7d0c1fa97123
task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
12 |
|
|
7d0c1fa97123
task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
13 |
def __init__(self, offer, status, errtext=None): |
|
7d0c1fa97123
task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
14 |
self.status = status |
|
7d0c1fa97123
task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
15 |
self.offer = offer #the offer over that this job was done |
|
7d0c1fa97123
task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents:
140
diff
changeset
|
16 |
self.errtext = errtext #the error text |
| 135 | 17 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
18 |
class ExJob: |
| 135 | 19 |
'''One Job is a class that handles one job has multiple tasks''' |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
20 |
def __init__(self, dbjob, recipients, message, offers): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
21 |
self.dbjob = dbjob #Connection to mysql job element (id) |
| 135 | 22 |
self.message = message |
23 |
self.recipients = recipients |
|
24 |
self.offers = offers |
|
25 |
self.tasks={} |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
26 |
|
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
27 |
def addTask(self,task): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
28 |
self.tasks[task.recipient] = task |
| 135 | 29 |
|
30 |
def setStatus(task,status): |
|
31 |
pass |
|
32 |
||
33 |
def setError(task,err): |
|
34 |
pass |
|
35 |
||
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
36 |
class ExJobs(dict, MutableMapping): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
37 |
|
| 135 | 38 |
@dbdefer |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
39 |
def create(self, session, user, recipients, message, offers, info=None): |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
40 |
user = session.merge(user) |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
41 |
job = schema.Job(info=info, status="started") |
|
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
42 |
user.jobs.append(job) |
| 135 | 43 |
session.commit() |
|
152
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
142
diff
changeset
|
44 |
|
|
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
142
diff
changeset
|
45 |
o = extendProvider(user, message.typ, offers, session=session) |
|
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
142
diff
changeset
|
46 |
self[job.id] = ExJob(job.id, recipients, message, o) |
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
47 |
return self[job.id] |
| 135 | 48 |
|
|
140
75d0eaaa871d
start fixing job mangement
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
49 |
exJobs = ExJobs() |