forked from adamm/git-importer
Load requests into the DB - not sure yet what for :)
This commit is contained in:
@@ -1,21 +1,22 @@
|
||||
class Request:
|
||||
def parse(self, xml):
|
||||
self.requestid = int(xml.get("id"))
|
||||
self.number = int(xml.get("id"))
|
||||
self.creator = xml.get("creator")
|
||||
self.state = xml.find("state").get("name")
|
||||
|
||||
self.type_ = xml.find("action").get("type")
|
||||
if self.type_ == "delete":
|
||||
# not much to do
|
||||
return self
|
||||
|
||||
self.source = xml.find("action/source").get("project")
|
||||
self.source_project = xml.find("action/source").get("project")
|
||||
self.source_package = xml.find("action/source").get("package")
|
||||
|
||||
# expanded MD5 or commit revision
|
||||
self.revisionid = xml.find("action/source").get("rev")
|
||||
self.source_rev = xml.find("action/source").get("rev")
|
||||
|
||||
self.target = xml.find("action/target").get("project")
|
||||
|
||||
self.state = xml.find("state").get("name")
|
||||
|
||||
# TODO: support muti-action requests
|
||||
# TODO: parse review history
|
||||
# TODO: add description
|
||||
@@ -25,7 +26,30 @@ class Request:
|
||||
return self.type_
|
||||
|
||||
def __str__(self):
|
||||
return f"Req {self.requestid} {self.creator} {self.type_} {self.source}->{self.target} {self.state}"
|
||||
return f"Req {self.number} {self.creator} {self.type_} {self.source_project}->{self.target} {self.state}"
|
||||
|
||||
def __repr__(self):
|
||||
return f"[{self.__str__()}]"
|
||||
|
||||
def import_into_db(self, db):
|
||||
cur = db.cursor()
|
||||
cur.execute(
|
||||
"""INSERT INTO requests (number, creator, type, state,
|
||||
source_project, source_package, source_rev)
|
||||
VALUES (%s,%s,%s,%s,%s,%s,%s) RETURNING id""",
|
||||
(
|
||||
self.number,
|
||||
self.creator,
|
||||
self.type_,
|
||||
self.state,
|
||||
self.source_project,
|
||||
self.source_package,
|
||||
self.source_rev,
|
||||
),
|
||||
)
|
||||
rowid = cur.fetchone()[0]
|
||||
cur.execute(
|
||||
"UPDATE revisions SET request_id=%s WHERE request_number=%s",
|
||||
(rowid, self.number),
|
||||
)
|
||||
cur.close()
|
||||
|
Reference in New Issue
Block a user