execute user import

This commit is contained in:
Nico Krapp 2022-10-24 18:12:44 +02:00
parent 5ed847de8b
commit 10cd7e4e38
No known key found for this signature in database
GPG Key ID: AC35CFFF55212BC7
3 changed files with 11 additions and 9 deletions

View File

@ -159,7 +159,6 @@ class DB:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
userid VARCHAR(255) NOT NULL,
login VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
realname VARCHAR(255) NOT NULL
)

View File

@ -10,6 +10,7 @@ from lib.obs import OBS
from lib.obs_revision import OBSRevision
from lib.proxy_sha256 import ProxySHA256, md5, sha256
from lib.request import Request
from lib.users import Users
def _files_hash(hash_alg, dirpath):
@ -173,6 +174,10 @@ class Importer:
else:
rev.set_broken(db)
fake_accounts = ["unknown","buildservice-autocommit", "autobuild", "_service"]
if Users.user_lookup(db, rev.userid) is None and rev.userid not in fake_accounts:
self.obs.users(rev.userid).import_into_db(db)
for number in DBRevision.requests_to_fetch(db, project, self.package):
self.obs.request(number).import_into_db(db)

View File

@ -1,14 +1,13 @@
class Users:
def parse(self, xml, userid):
self.userid = userid
self.login = xml.get("login")
self.realname = xml.find("login").get("realname")
self.email = xml.find("login").get("email")
self.realname = xml.find("realname").text
self.email = xml.find("email").text
return self
def __str__(self):
return f"User {self.userid} {self.login}: {self.realname} {self.email}"
return f"User {self.userid}: {self.realname} {self.email}"
def __repr__(self):
return f"[{self.__str__()}]"
@ -16,18 +15,17 @@ class Users:
def import_into_db(self, db):
cur = db.cursor()
cur.execute(
"""INSERT INTO users (userid, login, realname, email)
VALUES (%s,%s,%s,%s) RETURNING id""",
"""INSERT INTO users (userid, realname, email)
VALUES (%s,%s,%s) RETURNING id""",
(
self.userid,
self.login,
self.realname,
self.email,
),
)
cur.close()
def user_lookup(self, db, userid):
def user_lookup(db, userid):
cur= db.cursor()
cur.execute("SELECT * FROM users where userid=%s", (userid,))
row = cur.fetchone()